suffix aliasでファイル1つのコードをコンパイル

深夜に「ファイル1つのコードをコンパイルするのがめんどくさい
という話を書きました。

これをtwitterに展開したところ、「僕はsuffix aliasでやってる」 という情報を頂きました。ありがとうございますm(__)m

調べてみると、想像以上に便利。

suffix aliasを使うとコンパイルから実行までこうなる

$ ls
hello.c
$ ./hello.c
Hello world.
$ ls
hello hello.c

./hello.cと打ち込むだけでコンパイル実行を一気やってくれるようにできます。 これはいい :-)

設定は.zshenv.zshrcfunctionalias -sを追加するだけ

function run_c()
{
    EXECUTABLE=`echo $1|sed -e s/.c$//`
    gcc -Wall -Wextra $1 -o ${EXECUTABLE}
    shift
    ${EXECUTABLE} $@
}
alias -s c=run_c

実行ファイルなんていらないんじゃ
という方は/tmpに一定の名前で吐き出してあとから消すとか...?

function run_c()
{
    EXECUTABLE=/tmp/a.out
    gcc -Wall -Wextra $1 -o ${EXECUTABLE}
    shift
    ${EXECUTABLE} $@
    rm -f ${EXECUTABLE}
}
alias -s c=run_c

suffix aliasで検索するといろんなサイトが出てくるので、詳細はそちらで。

2/14 14:04 追記

run_c()のsedを修正