在具有多个分支的 git 存储库上工作时,如何修改我的 zsh 提示以包含我当前的活动分支?
答案1
使用vcs_info
功能在 zsh 用户贡献中(包含在zsh
包中)。快速入门:
autoload -Uz vcs_info
precmd () { vcs_info }
setopt prompt_subst
PS1="\$vcs_info_msg_0_$PS1"
您可能希望使输出更美观。由于这是个人喜好问题,因此我建议您参考文档中的示例。
答案2
使用哦我的天啊。它是一个自动更新的集合,包含几十个插件和主题,使它zsh
比现在更好。假设您已经git
安装了,它将自动激活 git 插件,然后您就可以开始了!
答案3
对于那些想要更轻量级的东西的人来说,这是我对 Gentoo 默认自带的 bash 提示符进行大量修改的 Zsh 端口。
function parse_git_branch() {
# Speed up opening up a new terminal tab by not
# checking $HOME... which can't be a repo anyway
[ "$PWD" = "$HOME" ] && return
# Fastest way I know to check the current branch name
ref="$(command git symbolic-ref --short HEAD 2> /dev/null)" || return
echo " [$ref]"
}
prompt_gentoo_precmd() {
path_prompt="%B%F{blue}%1~$(parse_git_branch)"
PS1="$base_prompt$path_prompt $pre_prompt%# $post_prompt"
PS2="$base_prompt$path_prompt $pre_prompt%_> $post_prompt"
PS3="$base_prompt$path_prompt $pre_prompt?# $post_prompt"
}
prompt_gentoo_setup () {
base_prompt="%k%B%(!.%F{red}.%F{green}%n@)%m "
pre_prompt="%(0?..%F{yellow})%(1j.%%.)"
post_prompt="%b%f%k"
precmd_functions+='prompt_gentoo_precmd'
}