这适用于bash
(parse_git_branch
是一个定义的函数)
export PS1="\$(parse_git_branch)"
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚zsh
.
注意:如果我这样做
PROMPT="$(parse_git_branch)"
Run Code Online (Sandbox Code Playgroud)
它似乎有效,但实际上在我设置提示时它正在运行命令,这不是重点。
aki*_*ira 29
你必须包括
setopt PROMPT_SUBST
Run Code Online (Sandbox Code Playgroud)
在你的.zshrc
,man zshall
在PROMPT EXPANSION部分解释它:
如果设置了 PROMPT_SUBST 选项,则提示字符串首先进行参数扩展、命令替换和算术扩展。
正如 akira 所说,你必须使用 prompt subst。这是我的早期代码(仍在研究中):
setopt PROMPT_SUBST
PROMPT='$(parse_git_branch)'
Run Code Online (Sandbox Code Playgroud)
或更好
setopt PROMPT_SUBST
PROMPT='[$PR_MAGENTA%n$PR_NO_COLOR@$PR_GREEN%U%m%u$PR_NO_COLOR:$PR_RED%2c$PR_NO_COLOR]$(parse_git_branch) %(!.#.$)'
Run Code Online (Sandbox Code Playgroud)