zshでコマンドを太字で表示するにはどうすればよいですか?


18

入力したコマンドが太字で表示され、コマンドの出力が通常の太さで表示されるようにbashシェルを設定しました。

ここに画像の説明を入力してください

これ\e[01mを行うには、PS1変数の最後に太字を追加して、それを使用trap DEBUGして無効にします。

trap 'printf "\e[0m" "$_"' DEBUG

そうすれば、\e[0m各コマンドが実行される前にが印刷され、出力で通常のフォントの太さが得られます。

同じ効果を得るにはどうすればいいzshですか?

回答:



7

あなたが望むのはpreexecフック関数です:

preexec() { printf "\e[0m"; }

次に、各コマンドが実行される前にpreexec、フォントを通常にリセットするために実行されます。

したがって、質問に表示されるのと同じプロンプトを表示するには、次の行をに追加します~/.zshrc

autoload -U colors && colors
PS1="%{$fg_bold[yellow]%}%n@%m %{$fg[blue]%}%~ \$ %{$reset_color%}%{$fg_bold[white]%}"
preexec() { printf "\e[0m"; }

DEBUGトラップの代わりに使用するのは正しいことですが、どちらもコマンドラインを太字にする正しい方法ではありません。
ジル 'SO-悪であるのをやめる'
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.