【发布时间】:2020-03-25 17:43:58
【问题描述】:
设置了对git 的 bash 完成支持后(版本 2.14.5
在 Slackware Linux 14.2 上)使用来自 git 主存储库的文件 contrib/completion/git-completion.bash,如前所述,并且已经对其他命令执行过操作,我希望将 git commands 作为常用的完成词TAB 完成 像 git [TAB][TAB] 一样点击。例如:
$ git c[TAB][TAB]
checkout commit clone ...
而不是获取任何 git 命令,如 checkout、commit 或其他,只建议或完成文件名。然而,当使用像 git --b[TAB][TAB] 这样的破折号请求完成时,建议或完成像 --bare 这样的 git 选项。
我知道,那里有很多类似的问题,但是尽管搜索了答案,但我找不到解决此问题的适当解决方案。
-
git-completion.bash文件来源正确;使用. git-completion.bash采购后,其功能可在执行的 bash 环境中使用,如declare -f所示。 -
progcompshell 选项是on。 -
git 完成函数注册为
complete -p git的输出显示:$ complete -p git complete -o bashdefault -o default -o nospace -F __git_wrap__git_main git - 检查源
git-completion.bash文件后,我可以说,完成函数__git_wrap__git_main在git [TAB]命中时被调用,但COMPREPLY变量在没有double 的情况下请求完成时未填充完成字-破折号--*
有谁知道为什么只有 git options 完成而 git commands 没有完成?
【问题讨论】:
-
您使用的是什么 gt 版本?在哪个操作系统上?
-
更新了问题详情:Slackware Linux 14.2 上的 GIT 版本 2.14.5
标签: bash git completion