我刚安装了(真棒)oh-my-zsh软件包来自定义我的zsh提示符,但我遇到了这个奇怪的问题:
如果我在命令名称上使用自动完成功能(例如sou<TAB>
- &gt; source
),则一切都按预期工作。但是,如果我在文件名称上使用自动完成功能(例如source .zshr<TAB>
- &gt; source .zshrc
),则整个命令的字体将变为灰色粗体。我在我的PROMPT
和颜色中使用粗体,但不是灰色,所以我不知道颜色代码来自哪里;事实上,只有在完成文件名时才会让我感到困惑。
以下是我的PROMPT
和RPROMPT
(灵感来自Steve Losh的prose
主题。)
PROMPT='
%B%F{208}%n%{$reset_color%}%{$fg_bold[white]%}@%B%F{039}$(box_name)
%{$reset_color%}:%{$fg_bold[green]%}${PWD/#$HOME/~}%{$reset_color%}
$(hg_prompt_info)$(git_prompt_info)
$(virtualenv_info)$(prompt_char) '
RPROMPT='${return_status}%{$reset_color%}[%t]'
提前致谢。
答案 0 :(得分:6)
实际上,解决方案相当简单:颜色和重量变化由%B引入,%F必须由%b和%f关闭,而不是由$ reset_color ...这就是全部。
答案 1 :(得分:0)
在两个提示中关闭单引号之前重置颜色;或者您也可以使用%{^[[0m%}
转义序列。请注意^[
是一个控制转义字符,您可以通过先控制并键入v然后释放并按一下转义键来输入它。