4

Homebrew経由で git をインストールしました。インストールされたスクリプトを介してコマンドライン補完を取得します

/usr/local/etc/bash_completion.d/

ただし、カスタムの git-* スクリプトも完成させたいと思っています。

これを既存の git 補完にどのように追加しますか?

4

1 に答える 1

3

いくつか例を挙げます。

  • エイリアスの補完を追加する

次のような pull のエイリアスがある場合:

alias gp='git push'

次に、実行するのと同じ補完を使用するようにエイリアスを定義できますgit-push

compdef _git gp=git-push
  • 新しいコマンドの補完を追加する

これはより厳しいものです。zshの補完スクリプトを作成するのは簡単ではありません。このプロジェクトのスクリプトを参考にしてください。たとえば、git-wtfの完了スクリプトを見てください。

  • 既存の補完を再利用しますが、変更されています

次のようにログを検索するスクリプトがある場合:

query="$1"
shift
git log -S"$query" "$@"

の補完をgit-log少し変更して使用したい場合: 最初に検索文字列を補完し、次に の通常のオプションを使用したいとしますgit-log。次に、これを使用できます:

_git-search () {
if (( CURRENT == 2 )); then
    _message "search string"
    return
fi

CURRENT=$(( $CURRENT - 1 ))
_git-log
}

_git-search "$@"

編集:また、新しく定義した補完ファイルを実際に使用するには、それらが保存されているディレクトリをfpath

于 2012-08-21T08:31:23.963 に答える