
Я думаю, что у меня была ошибка типаэтот вопрос. Моя подсказка:
PROMPT=$'\n%F{cyan}================================%f\n[%*] [%F{yellow}%?%f]\n[%F{cyan}%n@%m%f]\n[%F{green}%~%f]'
Например, я запустил:
================================
[2022-08-23 14:02:43] [0]
[jyxjjj@DESMG-MacBookPro]
[~]$ php media app:build
Если я нажму стрелку вверх на клавиатуре, а затем нажму стрелку вниз, то появится:
================================
[2022-08-23 14:02:43] [0]
[jyxjjj@DESMG-MacBookPro]
[~]$ php media app:buphp media app:build
Я уверен, что я не дал образец брака. Он просто показывает, как
php media app:buphp media app:build
и работает правильно как:
php media app:build
слишком.
Это значит, что все, что я видел, выполняет правильную команду.
Так что это просто ошибка отображения.
Затем я перепробовал все способы, только удаление экспорта PS1/PROMPT исправит эту ошибку.
Думаю, эта ошибка была вызвана моей PS1.
Как это исправить?
Я не понял ответа отэтот вопрос.
Поэтому я хочу спросить еще раз.
Мне очень жаль.
Дополнительно:
часть моего zshrc:
autoload -U colors && colors
setopt histignoredups
setopt histignorealldups
setopt appendhistory
setopt sharehistory
setopt promptsubst
Затем:
$ echo $PS1
%F{cyan}================================%f
[%*] [%F{yellow}%?%f]
[%F{cyan}%n@%m%f]
[%F{green}%~%f]$(__git_ps1)$
$ echo $PROMPT
%F{cyan}================================%f
[%*] [%F{yellow}%?%f]
[%F{cyan}%n@%m%f]
[%F{green}%~%f]$(__git_ps1)$
$ echo $PROMPT_COMMAND
(nothing)
$ which PROMPT_COMMAND
PROMPT_COMMAND not found
$ which prompt_command
prompt_command not found
Я проверил
PROMPT=$'\[\n\]\[%F{cyan}\]================================\[%f\n\][\[%*\]] [\[%F{yellow}\]%?\[%f\]]\n[\[%F{cyan}\]%n@%m\[%f\]]\n[\[%F{green}\]%~\[%f\]]'
и он напечатал [
и]
Я проверил
PS1='\n\[\e[36m\]================================\[\e[0m\]\n[\t] [\[\e[36m\]\u@\h\[\e[0m\]]\n[\[\e[32m\]\w\[\e[0m\]]'
в bash и это работает.
решение1
Я нашел ответ сам:
Из руководства zsh, Расширение подсказок, Простые экранирования подсказок,раздел 13.2.5 - Визуальные эффекты.
%{...%}
Включить строку как буквальную последовательность перехода. Строка в скобках не должна изменять позицию курсора. […]
В моем коде их не хватало %{
и %}
. Они, похоже, являются аналогами zsh\[
и \]
в баше.