zsh 提示主题导致光标在完成请求时向右移动
zsh prompt theme causing cursor to shift right upon completion request
我正在尝试创建一个简单的提示,使用转义字符来定义提示组件的颜色:
PROMPT=$'\e[0;35m%n\e[0m \e[0;92m%~\e[0m \e[0;97m$ \e[0m'
这工作正常,除了一件事 - 当我转到制表符完成时,我的光标(以及要完成的相关命令)被移到右边。
一点谷歌搜索把我带到了这里:
https://github.com/robbyrussell/oh-my-zsh/issues/23
将提示格式更改为:
PROMPT='%{$fg[green]%}%n%'
修复了问题。但是,与使用转义字符和上面显示的颜色代码相比,绿色、品红色、蓝色等颜色选项在您可以选择的颜色方面受到更多限制。
我不知道如何设置上面显示的第一个提示的格式,从而解决制表符完成问题。关于放置 %{ 的位置,我尝试了几种不同的排列,它们最终都破坏了提示字符串。
格式化的正确方法是什么?或者,有没有办法使用 $fg[COLOR]
方案访问比红色、蓝色、品红色等更多的颜色?
您可以将 %{
… %}
放在转义字符周围。
%{...%}
Include a string as a literal escape sequence. The string within the braces should not change the cursor position.
所以,下面简化的错误案例,
PROMPT=$'\e[0;35m%n\e[0m '
可能是
PROMPT=$'%{\e[0;35m%}%n%{\e[0m%} '
为什么 PROMPT='%{$fg[green]%}%n%'
有效是因为 $fg[green]
产生的转义序列正确地包含在 %{...%}
.
中
我正在尝试创建一个简单的提示,使用转义字符来定义提示组件的颜色:
PROMPT=$'\e[0;35m%n\e[0m \e[0;92m%~\e[0m \e[0;97m$ \e[0m'
这工作正常,除了一件事 - 当我转到制表符完成时,我的光标(以及要完成的相关命令)被移到右边。
一点谷歌搜索把我带到了这里: https://github.com/robbyrussell/oh-my-zsh/issues/23
将提示格式更改为:
PROMPT='%{$fg[green]%}%n%'
修复了问题。但是,与使用转义字符和上面显示的颜色代码相比,绿色、品红色、蓝色等颜色选项在您可以选择的颜色方面受到更多限制。
我不知道如何设置上面显示的第一个提示的格式,从而解决制表符完成问题。关于放置 %{ 的位置,我尝试了几种不同的排列,它们最终都破坏了提示字符串。
格式化的正确方法是什么?或者,有没有办法使用 $fg[COLOR]
方案访问比红色、蓝色、品红色等更多的颜色?
您可以将 %{
… %}
放在转义字符周围。
%{...%}
Include a string as a literal escape sequence. The string within the braces should not change the cursor position.
所以,下面简化的错误案例,
PROMPT=$'\e[0;35m%n\e[0m '
可能是
PROMPT=$'%{\e[0;35m%}%n%{\e[0m%} '
为什么 PROMPT='%{$fg[green]%}%n%'
有效是因为 $fg[green]
产生的转义序列正确地包含在 %{...%}
.