是否可以在提示的整个行中突出显示(设置背景色)zsh
?在我的emacs配置中,光标所在的行与窗口背景的颜色略有不同,这在视觉效果上很有帮助。我想知道是否有可能在我的终端机/ zsh提示符下做同样的事情,以便在所有运行的东西下有效地“画一条线”。
我尝试PROMPT='%{$bg[grey]%}# '
在我的菜单中进行设置,.zshrc
但是突出显示区域仅延伸到我键入的位置,而不延伸到终端的边缘。
我要实现的目标有可能吗?
是否可以在提示的整个行中突出显示(设置背景色)zsh
?在我的emacs配置中,光标所在的行与窗口背景的颜色略有不同,这在视觉效果上很有帮助。我想知道是否有可能在我的终端机/ zsh提示符下做同样的事情,以便在所有运行的东西下有效地“画一条线”。
我尝试PROMPT='%{$bg[grey]%}# '
在我的菜单中进行设置,.zshrc
但是突出显示区域仅延伸到我键入的位置,而不延伸到终端的边缘。
我要实现的目标有可能吗?
Answers:
如果我更改grey
为white
,您的示例实际上对我有用。
您正在使用哪个终端?也许它以不同的方式处理背景色?
这里有一些替代方法可以尝试:
将整个提示行设为灰色背景:
setopt promptsubst
preexec() {
tput sgr0
}
PS1="$(tput setab 7)# "
(应该与您的示例相同,但是编写方式不同。)
在提示前打印一行:
precmd() {
tput smul
for ((n=0; n<COLUMNS; n++)) { printf " "; }
printf "\n"
}
preexec() {
tput sgr0
}
(如果更改"\n"
为"\r"
,它应该在当前行下划线,但这似乎行不通。我猜zsh在打印提示时会擦除当前行,这是导致我找到第一个解决方案的原因。)
使命令(即您键入的所有内容)加粗:
setopt promptsubst
preexec() {
tput sgr0
}
PS1="# $(tput bold)"