为什么它不起作用?提示区域为空,我没有错误。
setopt prompt_subst
git_prompt() {
temp=`git symbolic-ref HEAD 2>/dev/null | cut -d / -f 3`
if [ "$temp" != "" ]; then
RPROMPT='%{$fg_no_bold[green]%}git:($temp%)%{$reset_color%} %{$fg_no_bold[yellow]%}[%1~]%{$reset_color%}'
else
RPROMPT='%{$fg_no_bold[yellow]%}[%~]%{$reset_color%}'
fi
}
RPROMPT='$(git_prompt)'
RPROMPT的值拼写正确,并且不包含错误。
最佳答案
函数git_prompt
不产生任何输出,而是直接设置RPROMPT
。然后将RPROMPT
设置为git_prompt
的输出,从而将其有效地设置为空字符串。
请返回字符串,而不是在RPROMPT
中设置git_prompt
。
setopt提示_替代
git_prompt(){
temp =`git symbolic-ref HEAD 2> / dev / null |切-d / -f 3`
如果[“ $ temp”!=“”];然后
返回'%{$ fg_no_bold [green]%} git:($ temp%)%{$ reset_color%}%{$ fg_no_bold [yellow]%} [%1〜]%{$ reset_color%}'
其他
返回'%{$ fg_no_bold [yellow]%} [%〜]%{$ reset_color%}'
科幻
}
RPROMPT ='$(git_prompt)'
或者只是将git_prompt
设置为在打印提示之前自动运行:
git_prompt(){
temp =`git symbolic-ref HEAD 2> / dev / null |切-d / -f 3`
如果[“ $ temp”!=“”];然后
RPROMPT ='%{$ fg_no_bold [green]%} git:($ temp%)%{$ reset_color%}%{$ fg_no_bold [yellow]%} [%1〜]%{$ reset_color%}'
其他
RPROMPT ='%{$ fg_no_bold [yellow]%} [%〜]%{$ reset_color%}'
科幻
}
自动加载-Uz add-zsh-hook
add-zsh-hook precmd git_prompt
您可能还想研究the vcs_info
function,它使您可以生成带有版本控制信息的提示,而不必自己进行数据检索。