vi+makefileで"無いよりまし"なプログラミング環境

viエディタを使ってコンパイルを必要とするプログラミングをする場合に,ゼロ設定よりちょっとだけでもましな環境を作ろうというお話.
知り合いがUNIX上でviを使ってプログラミング研修しているらしいのだけれど,X上で複数コンソール開いて「コード書く,別ウィンドウでコンパイル,コード修正」ってなことをしたりSSH経由で「コード書く,vi閉じてコンパイル,vi開く,エラー行へ移動*1,コード修正」なんて手間なことをしているらしいので,ここを見ているか知らないけれどvi上でもうちっとだけましな方法を書いてみる.

makefileを作る

makeコマンドでメイクファイルを指定しないでmakeさせるにはファイル名をmakefileに固定.
ソースファイルがsample1.c,コンパイル済みファイルがsample1.o,リンク済みファイルがsampe1の場合.

% cat -n ~/src/makefile 
     1  sample1 : sample1.o
     2          gcc -o sample1 sample1.o
     3
     4  sample1.o : sample1.c
     5          gcc -c sample1.c

たとえばこんなCコード.

% cat -n ~/src/sample1.c
     1  #include<stdio.h>
     2
     3  int main(){
     4    printf("Hello World!\n");
     5    return 0;
     6  }

実行してみる

ソースファイルとmakefileを同じディレクトリに入れて,viでsample1.cをviで開いてコマンドモードでmakeすれば自動でコンパイルが始まってエラーがあればカーソルが該当行にフォーカスした状態でコード編集画面に戻ります.

*1:行ジャンプも知らない様子だった