これは備忘録。
新人研修でC言語で課題プログラムを書かせているので、ソースが提出されたら、
という工程を経るのだけど、MinGWに警告オプションを付けまくっている私の環境では、
//コメント if (foo) { //コメント bar = BAZ; }
こんなC++スタイルの1行コメントでもコンパイルエラーになるので*2、
/*コメント*/ if (foo) { /*コメント*/ bar = BAZ; }
こんなC言語スタイルのコメントに変換したい訳だ、vimで。ソースを眺める時点で1行コメントに気づくので、そこで正規表現で置換してしまう。
面倒なので文字列中に//が出現した場合とか複数行連続するコメントとかは考慮しない。新人研修のソースなので分量は高が知れているので、手動でチェックしてしまう。
:%s/\/\/\(.*\)$/\/\*\1\*\//gc
今時のコンパイラはC++スタイルのコメントでもOKなものも多いし、課題自体もVisual C++で書かせているのにも関わらず、MinGWに「-Wall -ansi -pedantic -pedantic-errors」を付けてコンパイルしようとする自分が悪いのだけど、でも慣れたツールを使いたいので仕方がない。