入力したコマンドが太字で表示され、コマンドの出力が通常の重みで表示されるようにbashシェルを設定しました。
これを行うには、\e[01m
変数の末尾にPS1
を追加して太字をオンにし、trap DEBUG
を使用してオフにします。
trap 'printf "\e[0m" "$_"' DEBUG
このように、各コマンドが実行される前に\e[0m
が出力され、出力で通常のフォントの太さが得られます。
zsh
で同じ効果を得るにはどうすればよいですか?
昔ながらの方法は POSTEDIT
を使用することでした
POSTEDIT=$'\e[0m'
(そして、これはbashではないので、preexec
をシミュレートするためにDEBUGトラップを使用しないでください: zshはどこから来たか )しかし、zsh 4.3.11以降では、コマンドライン 構文強調表示機能 。あなたのプロンプトにあなたのプロンプトとセットだけを気にさせましょう
zle_highlight=(default:bold)
あなたが望むのは 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"; }