ZSH - 哦我的Zsh:修改PROMPT

时间:2016-12-02 00:13:08

标签: zsh oh-my-zsh

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

ex2 ➤                                                      git:master*                                                                                  

相同的屏幕截图: Screen shot of the same

我想在当前文件夹前面写一些文字 - 比如[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*                                                                                                                                                                     

相同的屏幕截图: Screen shot of the same

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

1 个答案:

答案 0 :(得分:0)

%{...}不会逃脱其中包含的任何空格;您应该引用整个值,以确保为分配正确转义任何封闭的空格。

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

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

考虑使用zsh自己对颜色的支持,以便您根本不需要%{...}

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

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