ZSH - Oh My Zsh:修改 PROMPT

ZSH - Oh My Zsh: modify PROMPT

我正在尝试修改 PROMPT 变量以包含一些附加信息。我当前的 PROMPT 还在右侧包含 git 状态。它看起来像这样:

ex2 ➤                                                      git:master*                                                                                  

相同的屏幕截图:

我想在当前文件夹前面添加一些文字 -- 例如 [Drone]。我目前是这样做的,

export PROMPT=%{"$fg[green] [Donre]"$fg[$NCOLOR]%}%c ➤ %{$reset_color%}

但这会产生两个问题。 1. 箭头字符不再被正确解析,我得到一个类似

的错误
" not valid in this context: ➤"

2。 git 状态被推到下一行。 新提示显示为,

 /home/arul/.zshrc:export:100: not valid in this context: ➤
 [Drone]ex2              git:maste
 r*                                                                                                                                                                     

相同的屏幕截图:

有人可以帮我正确修改 PROMPT 吗?

%{...} 不转义其中包含的任何空格;您应该引用 entire 值以确保任何包含的空格都被正确转义以进行赋值。

export PROMPT="%{$fg[green] [Donre]$fg[$NCOLOR]%}%c ➤ %{$reset_color%}"

照原样,箭头字符被视为 export 命令的单独参数(以及无效的参数名称)。 export,顺便说一句,可能是不必要的。每个需要 PROMPT 值的 shell 都可能执行包含此分配的任何配置文件。


考虑使用 zsh 自己的颜色支持,这样您就根本不需要 %{...}

PROMPT="%F{green} [Donre]%F{...}%c ➤ %f"

(其中 ...$NCOLOR 代表的任何颜色)。