zshを使用して長すぎるとプロンプトが消え、私が入力した残りの内容と同じ行に1文字が残り、残りはその下の新しい行に移動します。これが同じCOLUMNS
問題なのか、それともまったく異なる問題なのかをどうやって知ることができるのか分かりません。
rootユーザーにとってはうまくいくようです.zshrc
。入力が十分に長い場合、正しいプロンプトは欠陥なしに消えます。私の個人的にも、ウィンドウマネージャでメイン/スタックを切り替えた後、それ自体が問題を解決しているようです(AwesomeWM、それが影響するかどうかはわかりません)。
ファイル:
ROOT.zshrc:https://paste.gnome.org/pff0tkabw
個人.zshrc:https://paste.gnome.org/pxy8cfrcu
ベストアンサー1
..zshrc
.bashrc
zsh
bash
現在のプロンプトは次のように設定されています。
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
。