
次のようなエラーが出たと思いますこの質問私のプロンプトは
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の対応するもののようです。\[
そして\]
bashでは。