2016-08-02 6 views
4

私はzshの完了に関するいくつかのガイドを読んだことがありますが、私はまだ混乱しています。私たちの開発環境では、git new-branchというカスタムGitコマンドがあります。私はちょうどgit neとタイプした後、私にそれを自動完成させたいと思います。どうやってやるの?zshの完了にカスタムgitコマンドを追加するには?

答えて

6

デフォルトのgit完了is extendible

は、あなたがあなた自身のgitサブコマンドを持って言う(あなたが "Gitのfoo" を実行したときにgitのは、プログラム `gitの-foo」で を実行します)と、あなたが欲しい「gitのf "を入力してサブ のコマンド名を入力します。あなたは、ユーザーがコマンドのスタイルを経て完成 に知られ、そのサブコマンドを行うことができます。

% zstyle ':completion:*:*:git:*' user-commands foo:'description for foo' 

`ユーザーコマンドは、リストスタイルですので、あなたはそこに任意の数のプログラムを追加することができます。 :あなたはこのような あなたの$パスからすべてのgit- *プログラムを追加することができますので、記述部分は、オプションです:

% zstyle ':completion:*:*:git:*' user-commands ${${(M)${(k)commands}:#git-*}/git-/} 

それはあなたに

zstyle ':completion:*:*:git:*' user-commands new-branch:'custom new branch function' 

を追加すればよい、すなわちzshrc

カスタムコマンドのパラメータも処理したい場合は、カスタムcompdefファイルを使用する方が適切です。上記で参照されたファイルには、それに関する詳細もあります。git-<yourcommand>関数を定義する標準定義ファイルを作成するだけです。デフォルトのgit補完では、必要に応じて自動的に使用されます。

関連する問題