121

何を試しても、zshシェルでgitタブ/オートコンプリートを機能させることができないようです。bash-completion スクリプトと zsh-completion スクリプトをダウンロードして指示に従いましたが、機能しません。

私は oh-my-zsh を再インストールしましたが、それは役に立たなかったようで、何の違いもありませんでした。

動作している誰かが私にセットアップを説明してくれるので、エミュレートして動作させることができますか?

具体的には、これまでに行ったことは次のとおりです。

運がない。

4

7 に答える 7

309

TL;DR ワンライナー

echo 'autoload -Uz compinit && compinit' >> ~/.zshrc && . ~/.zshrc

これにより、.zshrc での補完が有効になり、現在のターミナル セッションに設定が適用されます。

説明:

実際、ZSHそのままでgit補完を行う方法を知っていますが、補完機能自体をオンにする必要があります(説明した手順から、まだ行っていないと思います)

これをあなたに追加する.zshrcだけで十分です:

autoload -Uz compinit && compinit

.zshrcファイルを配置したら、ZSH のシェルを再起動して新しい構成を取得することを忘れないでください (または、現在のセッションで行を実行すると、その 1 つのセッションのオートコンプリートが有効になります)。

zsh compinit: insecure directories警告_

完了スクリプトのセキュリティチェックcompinit -uをスキップするために使用することを提案してくれた@FranMorzoaに感謝します

これにより警告/確認が取り除かれますが、警告には理由があり、通常は発生しないはずです。

これは、補完スクリプトの所有権に問題があることを示しており、次のいずれかで修正できます (修正する必要があります)。

  • brew.shバージョン:

    chmod -R go-w "$(brew --prefix)/share"

  • 別のものは、おそらく醸造以外の zsh で動作します。GitHub の pvinisの功績によるものです。

    compaudit | xargs chmod g-w

より詳しい情報

hubPSここでの別の回答は、代わりにツールをインストールすることを提案しています。ツールは便利ですが、gitのサードパーティ(githubコミュニティ)ラッパーにすぎません。したがって、「ZSH での Git 補完」のトピックとは関係ありません。

于 2019-10-23T07:30:24.250 に答える
16

答えはalias git=hub.zshrcファイルにあったということでした。ハブの情報については、 https://github.com/github/hubを参照してください(素晴らしいです)。

ハブと git の完了で発生していた問題に関する情報へのリンクは次のとおりです: https://github.com/github/hub/issues/586#issuecomment-47727226

于 2014-07-02T09:20:17.553 に答える
2

私にとっての問題は、自作経由で git をインストールするときに、git が独自の zsh シェル拡張機能をインストールすることでした。git インストールのバージョンを確認し、zsh オートコンプリートを削除します。私のものはここにあり、次のように削除されました:

rm -rf /usr/local/Cellar/git/2.28.0/share/zsh/

これは、問題が他の答えのいずれかまたは組み合わせである可能性がないと言っているわけではありません.

于 2020-09-15T03:12:41.183 に答える