Zsh 如何确定I';我通过“:vcs\u info:”在hg或git目录中?
Zsh 如何确定I';我通过“:vcs\u info:”在hg或git目录中?,zsh,Zsh,:vcs\u信息:似乎知道您是否在git或hg目录中,如果您启用它: zstyle ':vcs_info:*' enable git hg i、 例如,您可以用这种方式修改提示 我怎样才能访问该数据,以便编写if条件?e、 g if [[ $some_magic_zstyle_vcs_info_variable ]]; then echo "I'm in a git dir!" fi mafredi提供了: i、 例如,%s将把VCS名称放入$VCS_info_msg_2_如果您只关
:vcs\u信息:
似乎知道您是否在git或hg目录中,如果您启用它:
zstyle ':vcs_info:*' enable git hg
i、 例如,您可以用这种方式修改提示
我怎样才能访问该数据,以便编写if
条件?e、 g
if [[ $some_magic_zstyle_vcs_info_variable ]]; then
echo "I'm in a git dir!"
fi
mafredi提供了:
i、 例如,
%s
将把VCS名称放入$VCS_info_msg_2_
如果您只关心如何使用zsh zstyle内部构件,那么这个问题不应该被标记为git
和mercurial
(无论如何,IMO)。要在没有任何zsh内部结构的情况下完成此操作,请遍历文件系统,查找.git
或.hg
目录:您首先点击的目录可能是正确的。@torek很公平,删除了标记。我希望这是尽可能快的计算机-它将进入一个提示。实际的代码(原始版本)似乎在-它不明显看什么,但我看到VCS\u INFO\u git\u detect
实际使用git rev parse-在git dir中,而不是在文件系统中运行(虽然这只是将作业推到git rev parse
),而VCS_INFO_hg_detect
执行dir walking(带缓存)。我不知道当前代码是否相同。@torek可能与您最初所说的一样。不过,如果zsh已经在执行此操作,我不想重复两次。
zstyle ':vcs_info:*' enable git hg
zstyle ':vcs_info:*' max-exports 3
zstyle ':vcs_info:(git|hg):*' formats ' %b' 'x%R' '%s'
zstyle ':vcs_info:(git|hg):*' actionformats ' %b|%a' 'x%R' '%s'
...
if [[ "$vcs_info_msg_2_" == "git" ]]; then
# git
fi
if [[ "$vcs_info_msg_2_" == "hg" ]]; then
# hg
fi