Git bash 完成没有按预期完成 git 命令
Git bash completion does not complete git commands as expected
设置 bash 完成支持 git
后(版本 2.14.5
在 Slackware Linux 14.2) 上使用来自 git 主存储库的文件 contrib/completion/git-completion.bash
并且已经为其他命令做了,我希望得到 git 命令 作为常用 TAB 完成 的完成词,如 git [TAB][TAB]
。例如:
$ git c[TAB][TAB]
checkout commit clone ...
不是获取任何 git 命令,如 checkout
、commit
,否则,仅建议或完成文件名。然而,当请求使用 git --b[TAB][TAB]
等破折号完成时,建议使用 git 选项 ,如 --bare
或完成得很好。
我知道,那里有很多类似的问题,但是尽管搜索了答案,但我找不到合适的解决方案来解决这个问题。
git-completion.bash
文件来源正确;在使用 . git-completion.bash
采购后,其功能在执行 bash 环境中可用,如 declare -f
所示。
-
progcomp
shell 选项是 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 [TAB]
命中时调用完成函数 __git_wrap__git_main
,但 COMPREPLY
变量未填充请求完成时没有 双破折号 --*
的完成词
有人知道为什么只有 git 选项 完成而 git 命令 没有完成吗?
自 Git 2.14 以来,完成度有了很多改进 (Git 2.18 notably), I would first check if the same issue persists with Git 2.26 (possibly using slpkg)
contrib/completion/git-completion.bash
has a rich and recent history.
设置 bash 完成支持 git
后(版本 2.14.5
在 Slackware Linux 14.2) 上使用来自 git 主存储库的文件 contrib/completion/git-completion.bash
并且已经为其他命令做了,我希望得到 git 命令 作为常用 TAB 完成 的完成词,如 git [TAB][TAB]
。例如:
$ git c[TAB][TAB]
checkout commit clone ...
不是获取任何 git 命令,如 checkout
、commit
,否则,仅建议或完成文件名。然而,当请求使用 git --b[TAB][TAB]
等破折号完成时,建议使用 git 选项 ,如 --bare
或完成得很好。
我知道,那里有很多类似的问题,但是尽管搜索了答案,但我找不到合适的解决方案来解决这个问题。
git-completion.bash
文件来源正确;在使用. git-completion.bash
采购后,其功能在执行 bash 环境中可用,如declare -f
所示。-
progcomp
shell 选项是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 [TAB]
命中时调用完成函数__git_wrap__git_main
,但COMPREPLY
变量未填充请求完成时没有 双破折号--*
的完成词
有人知道为什么只有 git 选项 完成而 git 命令 没有完成吗?
自 Git 2.14 以来,完成度有了很多改进 (Git 2.18 notably), I would first check if the same issue persists with Git 2.26 (possibly using slpkg)
contrib/completion/git-completion.bash
has a rich and recent history.