zsh 中的 Git 选项卡完成抛出错误

标签 git zsh

在努力为 osx 上的 git setup 获取制表符补全之后,我遇到了一些奇怪的错误,我也找不到源代码。

zsh:12: command not found: ___main
_default:compcall:12: can only be called from completion function

我不确定是什么导致了错误,因为一切都已正确设置。

zstyle ':completion:*:*:git:*' script ~/.git-completion.bash
autoload -U compinit && compinit
zmodload -i zsh/complist
source ~/.git-completion.zsh

有什么想法吗?

最佳答案

git-completion.zsh 似乎 设计为源代码。您可以将 git-completion.zsh 文件复制到 $fpath 中的某个位置,并将其重命名为 _git

例如:(如果您决定使用 ~/.zsh/functions/_git。)

首先,您可以将 git-completion.zsh 复制到那里并将其重命名为 _git

% mkdir -p ~/.zsh/functions && cp git-completion.zsh ~/.zsh/functions/_git

然后你可以像这样拥有你的~/.zshrc:

zstyle ':completion:*:*:git:*' script ~/.git-completion.bash
# `compinit` scans $fpath, so do this before calling it.
fpath=(~/.zsh/functions $fpath)
autoload -Uz compinit && compinit

如果我不确定,我会执行 rm ~/.zcompdump 以确保 compinit 丢弃其缓存。

关于zsh 中的 Git 选项卡完成抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28028740/

相关文章:

bash - 将 .zsh_history 文件转换为 .bash_history 文件

bash - 如何使用 stdout 和 stderr io-redirection 从程序中获取理智的错误/警告消息输出?

git - refs/pull/*/head -> origin/pr/* 出现在 git pull

git - 发布私有(private) git 仓库的特定路径

zsh - 在 zsh 中输入 ./(点斜杠) 时仅建议可执行文件而不是目录

bash - shell可以在 'command not found'之后运行特定的命令吗

shell - 我如何(从脚本)向 zsh 命令历史记录添加一些内容?

git - Maven 和 Gitlab : release:prepare uses the wrong SCM URL

git 扩展 pull 错误信息 : fatal: protocol error: bad line length character: git@

git - 意外提交的敏感信息-GitLab