[英]Git tab completion not working in zsh on mac
無論我嘗試做什么,我似乎都無法在我的 zsh shell 中使 git tab/auto 完成工作。 我已經下載了 bash-completion 腳本和 zsh-completion 一個並按照說明進行了操作,但我無法使其工作。
我已經重新安裝了 oh-my-zsh,但這似乎沒有幫助或有任何區別。
任何讓它工作的人都可以向我描述他們的設置,這樣我就可以嘗試模擬它來讓它為我工作嗎?
具體來說,到目前為止我所做的是:
~/.completion/git/git-completion.sh
~/.zsh/_git
zstyle ':completion:*:*:git:*' script ~/.completion/git/git-completion.sh
沒運氣。
實際上,ZSH確實知道如何開箱即用地完成 git 完成,但是您需要自己打開完成功能(從您描述的步驟中我猜您還沒有完成)
將此添加到您的.zshrc
應該足夠了:
autoload -Uz compinit && compinit
你放線后.zshrc
文件,不要忘記重啟外殼為ZSH拿起新的配置(或者,您可以在當前會話中執行的線,那將啟用一個會話自動完成)
這是添加行並應用於當前會話的單行:
echo 'autoload -Uz compinit && compinit' >> ~/.zshrc && . ~/.zshrc
有關更多信息,請參見此處https://git-scm.com/book/en/v2/Appendix-A:-Git-in-Other-Environments-Git-in-Zsh
PS 這里的另一個答案建議改為安裝hub
工具:雖然該工具很方便,但它只是 git 的第 3 方(github 社區)包裝器。 因此,它與“ZSH中的Git完成”主題無關
對於 2019 年觀眾:
如果您使用 ZSH:
brew install hub
mkdir ~/.zsh
和mkdir ~/.zsh/completions
創建目錄並安裝集線器后,您必須將hub.bash_completion.sh
文件cp
到本地zsh/completion
文件夾。
(我的是cp /usr/local/etc/bash_completion.d/hub.bash_completion.sh ~/.zsh/completions/_hub
)
然后~/.zshrc
下行添加到~/.zshrc
文件中:
fpath=(~/.zsh/completions $fpath)
autoload -U compinit && compinit
然后source ~/.zshrc
和瞧! 你應該有可用的 git 完成
答案是我的.zshrc
文件中有alias git=hub
。 有關集線器的信息,請參閱https://github.com/github/hub (很棒)。
這是有關我在使用集線器和 git 完成時遇到的問題的信息的鏈接: https : //github.com/github/hub/issues/586#issuecomment-47727226
對我來說,問題是當通過自制軟件安裝 git 時,git 安裝了自己的 zsh shell 擴展,這比 oh-my-szh 安裝的默認值要少得多。 找出你的 git install 是什么版本,然后刪除 zsh 自動完成。 我的在這里並因此刪除:
rm -rf /usr/local/Cellar/git/2.28.0/share/zsh/
這並不是說問題不可能是其他答案中的任何一個或組合。
今天同樣的問題困擾着我。 受到答案的啟發,我環顧了 .zshrc 並發現了以下內容:
Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
Example format: plugins=(rails git textmate ruby lighthouse)
Add wisely, as too many plugins slow down shell startup.
plugins=(git)
把上面這行注釋掉,開啟git插件,問題就解決了。 關於插件的更多細節可以在這里找到: https : //github.com/robbyrussell/oh-my-zsh/tree/master/plugins/git
如果沒有任何幫助,請嘗試使用 Homebrew brew install git
/usr/local/share/zsh/site-functions/_git
安裝 git 后出現的符號鏈接/usr/local/share/zsh/site-functions/_git
mkdir -p ~/.zsh/completions
curl "https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.zsh" > ~/.zsh/completions/_git
chmod a+x ~/.zsh/completions/_git
cat ~/.zshrc | grep 'fpath=(~/.zsh/completions $fpath)' > /dev/null || echo 'fpath=(~/.zsh/completions $fpath)' >> ~/.zshrc
cat ~/.zshrc | grep 'autoload -Uz compinit && compinit' > /dev/null || echo 'autoload -Uz compinit && compinit' >> ~/.zshrc
source ~/.zshrc
或者只是運行brew install zsh-completions
並按照說明進行操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.