ZSH 提示中的 Git 分支?

ZSH 提示中的 Git 分支?

在具有多个分支的 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'
}

相关内容