Ada*_*ers 10
zstyle :completion::complete:git-checkout:argument-rest:headrefs command "git for-each-ref --format='%(refname)' refs/heads 2>/dev/null"
Run Code Online (Sandbox Code Playgroud)
说明:
如果你在当前上下文中按下TAB(而不是按下),键入git checkout <Control-x><h>
调用_complete_help
会暴露zsh完成系统如何行动的内部<Control-x><h>
.由此可以看出zsh将调用该__git_heads
函数来完成git分支头的名称.如果然后键入which __git_heads
,您可以看到这些分支头名称是通过以下方式获得的:
_call_program headrefs git for-each-ref --format='"%(refname)"' refs/heads refs/remotes 2>/dev/null
Run Code Online (Sandbox Code Playgroud)
幸运的是,我们_call_program
专门设计用于允许用户更改默认行为.所以上面的zstyle
命令指示zsh使用替代git for-each-ref ...
调用而不是内置调用,你可以看到在上面的调用中,我删除了refs/remotes
参数.第一个参数zstyle
是完成上下文,这里它意味着" headrefs
当用户完成参数时,每当完成系统请求标记完成时git checkout
.所以这zstyle
只会影响git checkout
,而不是任何其他git
子命令.
归档时间: |
|
查看次数: |
2084 次 |
最近记录: |