2

私のシステムの git オートコンプリートはかなり優れていますが、少なくともgit difftoolgit diffmerge. つまりgit diff<TAB>、プロンプトに入力すると、次のようになります。

$ g diff<TAB>
diff         -- show changes between commits, commit and working tree, etc.
diff-files   -- compare files in the working tree and the index
diff-index   -- compare content and mode of blobs between index and repository
diff-stages  -- compare two "merge states" in the index file
diff-tree    -- compare the content and mode of blobs found via two tree objects

見る?いいえdifftool、またはdiffmergeそこにあります。それらを使用するために最後まで入力する必要があります。または、望ましくないgitエイリアスを作成する必要があります。

これら 2 つのコマンドのサポートを追加するために、デフォルトの git 補完構成にパッチを適用する方法はありますか? デフォルトの git 完了スクリプトはどこにありますか? .zshrcシステムのオリジナルを台無しにする必要がないように、それを変更できますか、それとも自分でパッチを当てることができますか?

誰かが知りたい場合のために、最新の oh-my-zsh もインストールされた Mac Lion で zsh 4.3.11 を使用しています。私のgitはhomebrewからインストールされ、バージョンは1.8.0.1です。

4

1 に答える 1

1

git の補完は、オートローディング機能によって行われます_git。オーバーライドできます。

  1. の最新バージョンをここ_gitからダウンロードします(未加工のリンクを使用して入手してください)。
  2. $fpath出荷されたスクリプトのパスよりも最初のディレクトリに配置します。リストが表示され、たとえばzshrcにprint -l $fpath追加することで、1つを先頭に追加できます。fpath=($HOME/.zsh/Completion $fpath)の変更$fpathが の前にあることを確認してくださいcompinit
于 2013-06-10T14:21:20.263 に答える