bash - Git bash 完成没有按预期完成 git 命令

标签 bash git completion

git 设置 bash 完成支持后(版本 2.14.5 在 Slackware Linux 14.2 上)使用来自 git 主存储库的文件 contrib/completion/git-completion.bash 并且已经为其他命令做了,我希望得到 < strong>git 命令 作为常用 TAB 完成 命中的完成词,例如 git [TAB][TAB]。例如:

$ git c[TAB][TAB]
checkout commit clone ...

不是获取任何git 命令,如checkoutcommit 或其他,仅建议或完成文件名。然而,当使用像 git --b[TAB][TAB] 这样的破折号请求完成时,建议使用像 --bare 这样的 git options或完成得很好。

我知道,那里有很多类似的问题,但尽管搜索了答案,但我找不到合适的解决方案来解决这个问题。

  • git-completion.bash 文件来源正确;使用 采购后。 git-completion.bash 其功能在执行 bash 环境中可用,如 declare -f 所示。
  • progcomp shell 选项打开
  • 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 变量未填充完成词

有人知道为什么只有 git 选项 完成而 git 命令 没有完成吗?

最佳答案

自 Git 2.14 以来,在完成方面有了很多改进(特别是 Git 2.18),我会首先检查 Git 2.26 是否仍然存在同样的问题(可能是 using slpkg)

contrib/completion/git-completion.bash有钱又近history .

关于bash - Git bash 完成没有按预期完成 git 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60854423/

相关文章:

java - 如何从 bash 脚本指定工作目录

git - .gitignore 的相对父目录路径

Elasticsearch Completion Suggester 不会返回与输入匹配的搜索文档

eclipse - 无论如何要在带有 EGit 的 Eclipse 中使用外部差异编辑器?

python - OpenAI ChatGPT (GPT-3.5) API 错误 429 : "You exceeded your current quota, please check your plan and billing details"

arrays - 从 SWIFT 中的 API 动态获取字段

linux - 使用 sed 删除带有重复字符和增量字符的字符串?

linux - Linux脚本和Ififif else语句

regex - inotifywait 根据修改的文件类型运行命令

git - 是否有可以在我自己的服务器上运行的 PHP Github 克隆?