配置できません“ X” Zshのジョブの数を示すために右のプロンプトへ
-
03-07-2019 - |
質問
この記事のコードは私のために働きます。すべてのコードを.zshrcに貼り付けました。
.zshrc
RPROMPT='%{\[0;33m%}%1v%{\[0m%}'
ジョブがあるかどうかを示す必要があります。しかし、それは私にはそれをしません。
ジョブが実行中であることを示すために、右側のプロンプトにXを取得したい。
Zshに複数のジョブがある場合、Xを表示する正しいプロンプトを表示するにはどうすればよいですか
解決
設定していない $ psvar
変数を使用しようとしているため、使用しているコードは機能しません。おそらくその記事はそれをどこか他の場所で言及していました。
とにかく、 RPROMPT
のジョブ数を表示するには、
<*>gt; RPROMPT="%1(j.X.)"
gt; RPROMPT="%j Job(s)"
少なくとも1つのジョブが実行されている場合に「X」を表示するには、次を使用します
<*> zshmisc
マンページのPROMPTセクションをご覧になるか、リンクをご覧ください: http://www.manpagez.com/man/1/zshmisc/ 。プロンプトに情報を表示するために使用できるすべての展開シーケンスについて説明します。
他のヒント
ANSIエスケープシーケンスから余分な左括弧が欠落しているように見えますが、 \ [
が期待どおりに動作しているとは思いません。
これが欲しいものです:
RPROMPT="%(1j.%{^[[33m%} X%{^[[0m%}.)"
ただし、バックグラウンドにあるジョブの数 を示すプロンプトの方が便利な場合があります。
RPROMPT="%(1j.%{^[[33m%} (%j jobs)%{^[[0m%}.)"
注:上記の ^ [
はリテラルエスケープ文字&#8212;例: 0x1B
。コマンドライン(またはVimを使用して .zshrc
を編集している場合はVimの挿入モード)でControl-Vを入力し、Control- [を押してエスケープ文字を挿入します。
所属していません StackOverflow