32

私が持っているとしましょう:

alias gg="git grep"

次に、次のようなものがあります。

gg "int x"

動作しますが

gg int x

苦情を受け取ります。ggをzshの関数として書き直して、ggの後のすべての引数を取り、それらを文字列に詰め込む方法はありますか?

ありがとう!

4

2 に答える 2

59
gg() { git grep "$*"; }
于 2010-02-01T03:17:25.947 に答える
5

特定のユースケースでは、これは悪い考えです。git-grep単一引数パターンを期待しています。シェルにスペース(intとxの間)をパターンの一部として処理させようとしています。これは、次のようなことを試みるとすぐに壊れます。gg foo.*barまたはシェルが解釈する可能性のある他のさまざまなこと。したがって、その後ggは実際に引用する必要があります。git grep int xこれが、機能しない理由です。fatal: ambiguous argument 'x': unknown revision or path not in the working tree...

あなたが価値のあるキーストロークセーバーだと思うなら、あなたはそれにあなたの引数を期待するggものと一致させておくべきです。git-grepこれには、元のエイリアスで問題ありません。また、他の正規表現を受け入れるコマンドの場合と同じように、パターンを一重引用符または二重引用符で囲みます。

于 2015-06-11T21:41:33.783 に答える