我的 .gitconfig 文件中有高级别名,我想支持制表符完成。
例如,这个简单的别名允许对 refs 进行 Tab 补全(假设已获取 git 补全):
[alias]
  co = checkout
然而,这并不:
[alias]
  co = "!f() { git checkout \"${@}\"; }; f}"
有什么方法可以为这些别名添加对制表符完成的支持吗?
事实证明,至少从 git v2.1.0 开始,就可以为“复杂别名”添加制表符完成支持。根据git-completion.bash:
# If you use complex aliases of form '!f() { ... }; f', you can use the null
# command ':' as the first command in the function body to declare the desired
# completion style.  For example '!f() { : git commit ; ... }; f' will
# tell the completion to use commit completion.  This also works with aliases
# of form "!sh -c '...'".  For example, "!sh -c ': git commit ; ... '".
因此,这有效:
  co = "!f() { : git checkout ; git checkout \"${@}\"; }; f}"
请注意,该模式!f很重要。这不起作用:(! f插入空格,尽管函数名称并不重要)。
| 归档时间: | 
 | 
| 查看次数: | 81 次 | 
| 最近记录: |