如何使命令在zsh中显示为粗体?


18

我已经设置了bash shell,以便我键入的任何命令均以粗体显示,并且命令的输出以正常权重显示:

在此处输入图片说明

\e[01m为此,我在PS1变量末尾添加了加粗功能,并使用trap DEBUG了将其关闭的功能:

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

这样,将\e[0m在执行每个命令之前打印,并且在输出中得到正常的字体粗细。

我将如何获得相同的效果 zsh

Answers:



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陷阱使用的正确方法,但使命令行加粗的方法也不正确。
吉尔斯(Gilles)'所以
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.