入力しすぎるとZSHプロンプトが消えます。

入力しすぎるとZSHプロンプトが消えます。

zshを使用して長すぎるとプロンプトが消え、私が入力した残りの内容と同じ行に1文字が残り、残りはその下の新しい行に移動します。これが同じCOLUMNS問題なのか、それともまったく異なる問題なのかをどうやって知ることができるのか分かりません。

rootユーザーにとってはうまくいくようです.zshrc。入力が十分に長い場合、正しいプロンプトは欠陥なしに消えます。私の個人的にも、ウィンドウマネージャでメイン/スタックを切り替えた後、それ自体が問題を解決しているようです(AwesomeWM、それが影響するかどうかはわかりません)。

画像:
ルートPS1:https://imgur.com/a/pfWZB7x

個人用PS1:https://imgur.com/lJMyw4k

ファイル:
ROOT.zshrc:https://paste.gnome.org/pff0tkabw

個人.zshrc:https://paste.gnome.org/pxy8cfrcu

ベストアンサー1

..zshrc.bashrczshbash

現在のプロンプトは次のように設定されています。

PS1='[${GREEN}%n${NC}@${GREEN}%m${NC}:${CYAN}%1~${NC}]%(?,,[${RED}%?${NC}])$(git_status)$ '

その中には、$GREENによって生成された制御シーケンスがありますtput

これに関する1つの問題は、色付けのためですzsh

$GREEN同等の変数を捨てて代わりに使用することをお勧めします。

PS1='[%F{green}%n%f@%F{green}%m%f:%F{cyan}%1~%f]%(?,,[%F{red}%?%f])$(git_status)$ '

それぞれは%F{colorname}前景色をに設定し、colornameその%f色の使用を中止します。

自分のエスケープシーケンスを正しく使用するには、各シーケンスを囲む必要があり、プロンプトで%{...%}スペースを取らないことがわかります(rootユーザーのinitファイルはこれを行いますが、バイパス的な方法で実行します)。

PS1='[%{${GREEN}%}%n%{${NC}%}@%{${GREEN}%}%m%{${NC}%}:%{${CYAN}%}%1~%{${NC}%}]%(?,,[%{${RED}%}%?%{${NC}%}])$(git_status)$ '

これはまた、カラーコードを含むシェル関数の出力をgit_status更新する必要があることを意味します。

「プロンプトシーケンスの拡張」というタイトルのマニュアルセクションをお読みくださいzshmisc

おすすめ記事