1

「.c」サフィックスを持つファイルで操作を実行する .zshrc 関数に追加したいと考えています。例えば、

*.c () {
    gcc $0 -o ${0%.*}
}

「foo.c」に入るときに「gcc foo.c -o foo」を実行する必要があります

しかし、この関数を「.zshrc」に追加すると、ログイン時にシェルが「一致が見つかりません: *.c」と出力されます。

これを別の方法で行うか、この関数を「遅延」にすることはできますか?

4

1 に答える 1

3

あなたはalias -s振る舞いが欲しくなるでしょう。マンページから:

 ALIASES
   Suffix aliases are supported in zsh since version 4.2.0. Some examples:

       alias -s tex=vim
       alias -s html=w3m
       alias -s org=w3m

   Now pressing return-key after entering foobar.tex starts vim with foobar.tex. Calling
   a html-file runs browser w3m. www.zsh.org and pressing enter starts w3m with argument
   www.zsh.org.

作成した関数をサフィックス エイリアスに結合すると、準備完了です。

まず、関数を次の形式で記述します。

compile_c () {     
   gcc $1 -o ${1%.*}
}

そして、サフィックスエイリアス

alias -s c='compile_c'

意図したとおりに動作します。

于 2011-04-14T16:57:59.890 に答える