Zshシェルで新しくインストールしたOS X Yosemiteでgitを完了できません。私はhomebrewを使用してgitとzshの両方をインストールしました:
brew install zsh git
Homebrewを介してgitをインストールすると、タブ補完が設定されますが、git <tab>
を実行すると、gitコマンドではなく、ディレクトリをタブ補完しようとします。つまりエラーが発生していない-機能していない-セットアップされていないように。
どうやらzshは_*
のディレクトリの1つで$fpath
ファイルを探すことにより、オートコンプリートの方法を探します。これは私のものです:
% echo $fpath
/usr/local/share/zsh/site-functions /usr/local/Cellar/zsh/5.0.6/share/zsh/functions
目にする最初のパスを見てください。
% ls -l /usr/local/share/zsh/site-functions
lrwxr-xr-x 1 watson admin 55 Oct 20 12:08 _git -> ../../../Cellar/git/2.1.2/share/zsh/site-functions/_git
lrwxr-xr-x 1 watson admin 70 Oct 20 12:08 git-completion.bash -> ../../../Cellar/git/2.1.2/share/zsh/site-functions/git-completion.bash
だから、箱から出して動作するように設定されているようですが、そうではありません。
source git-completion.bash
を使用して実行するこれは一種の動作です(つまり、オートコンプリートを有効にします)が、警告を出力します。
WARNING: this script is deprecated, please see git-completion.zsh
したがって、上記の警告のため、私は明らかに git-completion.zsh をダウンロードしてファイルの上部にあるガイドに従いましたが、基本的には最初に.bashファイルをソースにするように指示しています。それでもエラーが発生する原因です。
私はこことGoogleで検索して見つけたすべてのものを試してみましたが、何もうまくいかないようです。
私はちょうど答えに出くわしました!
私の場合、.zshrc
ファイルにいくつかの重要な部分がありませんでした。しかし、最初に少し背景:
私がしようとしていることは、「 zsh Completion System 」を設定することです。 comp*
で名前が付けられた多くのコマンドが付属しています。私はこれらを数回実行しようとしましたが、多くの場合、zshはそれらを知らなかったと伝えます。どうやら、あなたはとりわけそれらをautoload
する必要があります。
これは私がやったことです:
.zshrc
ファイルに次の行を追加しました。
autoload -U compinit && compinit
zmodload -i zsh/complist
次に、新しいターミナルを開いて実行しました。
rm -f ~/.zcompdump; compinit
次に、新しいターミナルを開いて、git <tab>
が期待どおりに機能するようになりました:)
$fpath
ファイルにカスタム.zshrc
を設定している場合、これらの行を追加することをお勧めします後$fpath
(違いが出るかどうかはわかりませんが)。
私の問題はずっと単純でした。デフォルトのシェルを変更するのを忘れました。
echo $Shell
、それが/bin/bash
の場合は、chsh -s /bin/zsh
と入力します
ホームディレクトリにあった.zcompdump-(...)
ファイルを削除すると、プラグインが再び機能し始めました。