答え1
昔ながらのやり方を使うことですPOSTEDIT
POSTEDIT=$'\e[0m'
(しかし、これはbashではありません。エミュレートするためにDEBUGトラップを使用しないでくださいpreexec
:zshはそれがどこから来たのか)しかし、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"; }