2

この記事のコードは私には機能しません。すべてのコードを.zshrcに貼り付けました。

私の中には次のものがあります.zshrc

RPROMPT='%{\[0;33m%}%1v%{\[0m%}'

それはあなたが仕事を持っているかどうかを示すべきです。しかし、それは私にとってはそれをしません。

実行中のジョブがあることを示すために、正しいプロンプトにXを表示したいと思います。

Zshに複数のジョブがある場合、Xを表示する正しいプロンプトをどのように作成できますか?

4

2 に答える 2

4

$psvar使用しているコードは、設定していない変数を使用しようとしているため、機能しません。おそらくその記事はどこかでそれについて言及していました。

とにかく、のジョブ数を表示するにはRPROMPT、を使用します

$> RPROMPT="%j Job(s)"

少なくとも1つのジョブを実行している場合に「X」を表示するには、次を使用します。

$> RPROMPT="%1(j.X.)"

マンページのPROMPTセクションを確認するzshmiscか、次のリンクを参照してください:http: //www.manpagez.com/man/1/zshmisc/。プロンプトに情報を表示するために使用できるすべての拡張シーケンスについて説明します。

于 2009-05-08T06:41:30.773 に答える
0

ANSIエスケープシーケンスから余分な左角かっこが欠落しているようです。さらに、\[期待どおりに機能していないと思います。

これがあなたが望むものです:

RPROMPT="%(1j.%{^[[33m%} X%{^[[0m%}.)"

ただし、プロンプトでバックグラウンドにあるジョブの数を表示する方が便利な場合があります。

RPROMPT="%(1j.%{^[[33m%} (%j jobs)%{^[[0m%}.)"

^[上記は文字通りのエスケープ文字です—例:0x1B。コマンドラインで(またはVimを使用して編集している場合はVimの挿入モードで.zshrc)Control-Vと入力し、次にControl-[と入力してエスケープ文字を挿入します。

于 2009-05-08T06:29:05.330 に答える