为什么我的git信息不会出现在我的提示中,除非我重新加载我的.zshrc?

时间:2016-12-17 03:27:18

标签: git zsh

正如标题所说,我将我的提示配置为显示我的git信息。问题是它没有出现,除非我重新加载我的zshrc。

precmd () {
    if [[ -z  $(git rev-parse --git-dir > /dev/null 2>&1) ]] {
        git_dir=$(git rev-parse --show-toplevel)
        git_split=("${(@s./.)git_dir}")
        git_root=$git_split[-1]
    } else {
        git_root=''
    }

    if [[ -z $(git ls-files --other --exclude-standard 2> /dev/null) ]] {
        zstyle ':vcs_info:*' formats ' [%F{white}%b ${git_root} %c%u%F{green}]'
    } else {
        zstyle ':vcs_info:*' formats ' [%F{white}%b ${git_root} %c%u%F{red}●%F{white}]'
    }

    vcs_info
}

我发现这导致了这个问题:

if [[ -z  $(git rev-parse --git-dir > /dev/null 2>&1) ]] {
    git_dir=$(git rev-parse --show-toplevel)
    git_split=("${(@s./.)git_dir}")
    git_root=$git_split[-1]
} else {
    git_root=''
}

但为什么呢?我怎么解决这个问题?我真的想在我的提示中提供这些信息。它显示了我在里面的回购,这在我多次跳转目录时非常有用。我的提示应如下所示:

jonathan at  k-nine ~  [master jonathan ●] 10:24 pm
->

当它没有加载时,它看起来像这样:

jonathan at  k-nine ~  10:26 pm
->

为什么?

0 个答案:

没有答案