zshでコマンドを太字にする方法は?

zshでコマンドを太字にする方法は?

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

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

\e[01m変数の末尾に追加して太字にPS1設定し、次のようにドラッグしますtrap DEBUG

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

これにより、\e[0mすべてのコマンドが実行される前に印刷され、出力から通常のフォントの太さが得られます。

同じ効果をどのように得ることができますかzsh

答え1

昔ながらのやり方を使うことですPOSTEDIT

 POSTEDIT=$'\e[0m'

(しかし、これはbashではありません。エミュレートするためにDEBUGトラップを使用しないでくださいpreexeczshはそれがどこから来たのか)しかし、zsh 4.3.11からコマンドラインを使うことができます構文強調ツール。プロンプトがプロンプトと設定にのみ興味を持っていることを確認してください。

zle_highlight=(default:bold)

答え2

あなたが望むもの実行前のフック機能:

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"; }

関連情報