Zsh
如何使命令在 zsh 中顯示為粗體?
我已經設置了我的 bash shell,以便我輸入的任何命令都以粗體顯示,並且命令的輸出以正常重量顯示:
我通過在變數
\e[01m
末尾添加PS1
以打開粗體並使用trap DEBUG
將其關閉來做到這一點:trap 'printf "\e[0m" "$_"' DEBUG
這樣,在
\e[0m
執行每個命令之前都會列印出來,並且我會在輸出中獲得正常的字型粗細。我將如何獲得相同的效果
zsh
?
老式的方法是使用
POSTEDIT
POSTEDIT=$'\e[0m'
(順便說一句,這不是 bash,不要使用 DEBUG 陷阱來模擬
preexec
: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"; }