别名g ='git'并且bash完成仍然有效

Tom*_*ale 2 git bash autocomplete git-completion

对于git自己的别名,例如.alias g=git,你会在这里更容易找到答案.

对于git子命令别名,例如.alias gco = "git checkout",看这里.


git经常打字,所以我把它别名:

alias g='git'
Run Code Online (Sandbox Code Playgroud)

但是,现在我做不到:

g comtab

并完成呈现给我:

g commit

如何重新开始运行?


重复分化

这个平等的第一个元回答建议保持具体案例与一个更通用的问题的链接.我在此编辑中添加了更通用案例的链接.

断言的重复问题更通用 - 但主要是关于git子命令的别名,而不是git本身的别名.

这个问题是关于别名git本身的具体情况.

在标记的副本中,git-itself case仅在第4个显示的答案中回答,并在对第一个列出的答案的评论中回答.第二部分拼图(源/usr/share/bash-completion/completions/git)需要阅读另一条评论才能通过该方法使其工作.

解决以下评论中的链接:

  • @ ewcz的链接是标记的副本,已经解决了
  • Remy J的链接
    1. 这是问题(和回答)也是关于git子命令的问题
    2. 这是一个关于非git别名的更普遍的问题,在这种情况下并不接近最佳解决方案
    3. 这与@ ewcz的链接(已经解决)相同

Tom*_*ale 9

在你的最后.bashrc,添加:

_xfunc git __git_complete g _git
Run Code Online (Sandbox Code Playgroud)

如果你看到bash: _xfunc: command not found,请使用更长的形式:

source /usr/share/bash-completion/completions/git
__git_complete g _git
Run Code Online (Sandbox Code Playgroud)

重新加载bash

exec bash

(这个答案的灵感来自于kub1x的答案以及关于完成git子命令别名的问题中的评论)