在努力获得osx上git setup的tab完成后,我遇到了一些奇怪的错误,我也找不到源代码.
zsh:12: command not found: ___main
_default:compcall:12: can only be called from completion function
Run Code Online (Sandbox Code Playgroud)
我不确定是什么导致了错误,因为一切都设置正确.
zstyle ':completion:*:*:git:*' script ~/.git-completion.bash
autoload -U compinit && compinit
zmodload -i zsh/complist
source ~/.git-completion.zsh
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
hch*_*baw 14
这似乎git-completion.zsh是不设计成source编.您可以将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
Run Code Online (Sandbox Code Playgroud)
如果我不确定,我会rm ~/.zcompdump确保compinit丢弃其缓存.
前
mkdir -p ~/.zsh
cd ~/.zsh
Run Code Online (Sandbox Code Playgroud)
获取完成脚本
curl -o git-completion.bash https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash
curl -o _git https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.zsh
Run Code Online (Sandbox Code Playgroud)
添加~/.zshrc
# git completion
zstyle ':completion:*:*:git:*' script ~/.zsh/git-completion.bash
fpath=(~/.zsh $fpath)
autoload -Uz compinit && compinit
Run Code Online (Sandbox Code Playgroud)
重新启动 shell 会话
| 归档时间: |
|
| 查看次数: |
1403 次 |
| 最近记录: |