别名 g='git' 并且 bash 完成仍然有效 [重复]
Posted
技术标签:
【中文标题】别名 g=\'git\' 并且 bash 完成仍然有效 [重复]【英文标题】:alias g='git' and have bash completion still work [duplicate]别名 g='git' 并且 bash 完成仍然有效 [重复] 【发布时间】:2017-01-23 05:36:47 【问题描述】:对于git
本身的别名,例如。 alias g=git
,你会在这里更容易找到答案。
对于git
子命令别名,例如。 alias gco = "git checkout"
,看here。
我经常输入git
,所以我给它起了别名:
alias g='git'
但是,现在我做不到:
g com
标签
并让完成呈现给我:
g commit
如何让完成再次运行?
重复分化
equal-first meta answer 建议使用 a 来保留特定案例,并带有指向更通用问题的链接。我在此编辑中添加了指向更通用案例的链接。
断言的重复问题更为通用 - 但主要是关于 git
子命令的别名,而不是 git 本身的别名。
这个问题是关于别名是git
本身的具体情况。
在标记的重复项中,git
-itself 案例仅在显示的第 4 个答案和对第一个列出的答案的评论中得到回答。第二部分需要阅读另一条评论(来源/usr/share/bash-completion/completions/git
)才能通过该方法工作。
解决以下 cmets 中的链接:
@ewcz 的链接被标记为重复,并且已被处理 Remy J 的链接-
这个问题被问(和回答)也是关于
git
子命令
这是一个关于非git
别名的更一般的问题,在这种情况下,这并不是最佳解决方案
这与@ewcz 的链接相同(已解决)
【问题讨论】:
我正在运行GNU bash, version 4.3.11(1)-release (x86_64-pc-linux-gnu)
***.com/questions/342969/… ?
也许这几个链接会帮助你 1.Git autocomplete in bash aliases? 2.How do I get bash completion for command aliases? 3.How do I get bash completion to work with aliases? 4....
【参考方案1】:
在.bashrc
末尾添加:
_xfunc git __git_complete g _git
如果您看到bash: _xfunc: command not found
,请使用较长的形式:
source /usr/share/bash-completion/completions/git
__git_complete g _git
重新加载 bash
exec bash
(这个答案的灵感来自kub1x's answer 和comments 在关于completion of git subcommand aliases 的问题中)
【讨论】:
【参考方案2】:在您的 .bashrc 文件中添加以下内容:
source /usr/share/bash-completion/completions/git
complete -o default -o nospace -F _git g
【讨论】:
以上是关于别名 g='git' 并且 bash 完成仍然有效 [重复]的主要内容,如果未能解决你的问题,请参考以下文章