GCCのエラーが見にくいので色を付けた。

コマンドラインGCCを使っていると、エラーや警告が見つけにくくて不便だと思ったので、色を付けて強調してみた。

あと、makeの "make[1]: Entering ..." っていう行がわりと目障りなので、行全体に色を付けて逆に目立たないようにしてみた。

function make_auto_color
{
  # 以下のフレーズに色をつける。
  #  * error, エラー, warnig, 警告, undefined reference to
  #    とかを強調する。
  #  * "make[1]: Entering directory とか
  #    "make[1]: Leaving directory とか
  #    "make[1]: ディ" で始まる行は逆に目立たない色にする。
  # LANG=C のときは sed が転けるので英語に限定。。
  if [ "$LANG" = "C" ] ; then
    make $* 2>&1 \
      | sed 's/ \(error\|warning\):/ \$\$\x1b[1;35m\1\x1b[0m\$\$:/g;
            s/ \(Error\) / \$\$\x1b[1;35m\1\x1b[0m\$\$ /g;
            s/ \(undefined reference to\) / \$\$\x1b[1;35m\1\x1b[0m\$\$ /g;
            s/^make\[[0-9]*\]: \(Enter\|Leav\)ing directory .*/\x1b[1;34m\0\x1b[0m/g;'
  else
    make $* 2>&1 \
      | sed 's/ \(error\|warning\):/ \x81\xa1\x1b[1;35m\1\x1b[0m\x81\xa1:/g;
            s/ \(\x83\x47\x83\x89\x81\x5b\|\x8c\x78\x8d\x90\) / \x81\xa1\x1b[1;35m\1\x1b[0m\x81\xa1 /g;
            s/ \(undefined reference to\) / \x81\xa1\x1b[1;35m\1\x1b[0m\x81\xa1 /g;
            s/^make\[[0-9]*\]: \x83\x66\x83\x42.*/\x1b[1;34m\0\x1b[0m/g;'
  fi
}
alias make="make_auto_color"

CygwinSJISで使っているのでSJIS限定です。

エラーが読みやすくなるし、警告を見逃さなくなるので気に入っている。