簡體   English   中英

Git選項卡完成在Mac上的zsh中不起作用

[英]Git tab completion not working in zsh on mac

無論我嘗試做什么,我似乎都無法在我的 zsh shell 中使 git tab/auto 完成工作。 我已經下載了 bash-completion 腳本和 zsh-completion 一個並按照說明進行了操作,但我無法使其工作。

我已經重新安裝了 oh-my-zsh,但這似乎沒有幫助或有任何區別。

任何讓它工作的人都可以向我描述他們的設置,這樣我就可以嘗試模擬它來讓它為我工作嗎?

具體來說,到目前為止我所做的是:

沒運氣。

實際上,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 ~/.zshmkdir ~/.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 完成

來源: https : //github.com/github/hub/tree/master/etc#zsh

答案是我的.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM