Cシェルを使用してカスタムフラグ置換ルールを作成するには?

Cシェルを使用してカスタムフラグ置換ルールを作成するには?

私はgrepに次のような動作をさせたいと思います:

grep --java <rest of the command>

ここで、 --java は --include=*.java に動的に変換されるか、内部的に同じです。私の.cshrcファイルでこれを行う方法はありますか?完全なコマンドを試してみましたが、現在の単語では代替コマンドを使用できないようです。

答え1

他の構文(この場合は短くて簡単に入力)を使用する場合は、その構文のエイリアスを作成してください。次の項目に追加してください~/.cshrc

alias jgrep grep --include="*.java"

その後、次のコマンドを実行できます。

jgrep foo *

それは実行されるでしょう

grep --include="*java" foo *

答え2

これはでできることではありませんtcsh

あなたのオプションは次のとおりです。

  • terdonがすでに述べたように、別名を使用してください。

    alias jgrep grep --include="*.java"
    
  • 完了モードを設定します。たとえば、

    complete grep 'c/--/(complete)/' 'n/--complete/(*.java *.rb *.py)/' 
    

    これで入力できますgrep --<Tab><Tab>j<Tab>

  • 変数の使用:

    set java = '--include=*.java'  
    grep -r "$java" foo
    

    個人的には必ずしも簡単だとは思わない。

ついに私は見つけたthe_silver_searcherコードツリーを「grepping」するのにより便利で高速です。確認してみるとよさそうです。

関連情報