vimからmake

はじめに

vimを開発環境として使う場合に標準搭載されているmakeコマンドを使用すると便利です。

サンプルプログラムの作成

次の通りCのプログラムとMakefileを用意します。

$ ls
Makefile    hello.c

hello.c

#include<stdio.h>

int main(){
    printf("Hello!\n");

    return 0;
}

Makefileにはbuildとrunのタスクを定義します。

Makefile

build :
         cc hello.c
run :
        ./a.out

vimrcにショートカットを設定

vimからMakefileに定義したタスクを簡単に実行するため、 ショートカットキーを設定しておきます。 これにより、vim上ではコマンドモード、挿入モードに関わらず F5でファイルの保存と:make buildの実行、F6でファイルの保存と:make runの実行ができるようになります。
makeの実行結果はQuickfix Listで確認できますが、毎度:copenするのは煩わしいので makeの後に自動でQuickfix Listが開くようにau[tocmd]も次の通り設定しておきます。

~/.vimrc

nnoremap <F5> :w<CR>:make build<CR>
inoremap <F5> <Esc>:w<CR>:make build<CR>
nnoremap <F6> :w<CR>:make run<CR>
inoremap <F6> <Esc>:w<CR>:make run<CR>
au QuickfixCmdPost make copen

動作確認

hello.cの最終行から閉じ括弧をわざと削除しておきます。
f:id:hiroki-sawano:20171117023708p:plain

F5でmake buildを実行します。
f:id:hiroki-sawano:20171117022533p:plain

実行結果はQuickfix Listで確認できます。
f:id:hiroki-sawano:20171117023755p:plain

コードを正しく修正し、再度make buildを行います。
f:id:hiroki-sawano:20171117023850p:plain

コンパイルが正常終了しました。
f:id:hiroki-sawano:20171117024015p:plain

F6でmake runを実行します。
f:id:hiroki-sawano:20171117023856p:plain

正常にプログラムが動作しました。
f:id:hiroki-sawano:20171117022839p:plain