不知何故,我的zsh提示符在某些文件夹中显示文本 ~window_label ,而不是显示其名称。似乎是git文件夹的问题,但是一些git文件夹显示正确。
以下是我使用的zsh主题。
PROMPT='%{$reset_color%}[%{$fg[cyan]%}%2~%{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%}%{$reset_color%}] $ '
# PROMPT='[%{$fg_bold[blue]%}%2~ $(git_prompt_info)%{$reset_color%}%(!.#.$) ] $ '
ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%} | %{$fg[blue]%}git:‹%{$fg[red]%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}›%{$fg[yellow]%}✗%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%}›"
答案 0 :(得分:1)
提示中的%2~
负责此行为。通常这会被当前工作目录的最后两个组件所取代。但是,当当前工作目录具有指定目录作为前缀时,此部分将替换为~
,后跟目录名称,或~
仅$HOME
。
通常,命名目录是主目录,但可以定义其他目录。在您的情况下,它似乎是一个静态命名目录,可以通过设置一个shell参数来定义一个以/
开头的值
window_label=/some/path/to/somewhere
或使用hash -d
hash -d window_label=/some/path/to/somewhere
无论哪种方式,您的提示都会显示/some/path/to/somewhere
而不是~window_label
。
从参数window_label
的名称开始,可能会为终端窗口的标题设置它。这也可能是它仅为某些git文件夹发生的原因:目录名称表示(~window_label
)仅在表示当前目录的最短方式时使用。例如:/tmp/foo
不会被替换,而/tmp/foo/bar/baz
会被替换。
有关详细信息,请参阅&#34;文件名扩展&#34; 部分,尤其是&#34;静态命名目录&#34; < EM> zshmisc(1)