はじめに
Cを書いていると「保存 → ターミナル切り替え → make → エラー確認 → vim に戻る」という流れが普通だと思っていませんか?
このムダな往復をゼロにするのが vim の :make コマンド と Makefile の組み合わせです。
前提
- vim(NeoVim でも同様)
- make(GNU make)
- gcc または clang
Step 1 ― Makefile を用意する
プロジェクトルートに以下の Makefile を置く。
CC = gcc
CFLAGS = -Wall -Wextra -g
TARGET = main
SRCS = main.c
OBJS = $(SRCS:.c=.o)
.PHONY: all clean
all: $(TARGET)
$(TARGET): $(OBJS)
$(CC) $(CFLAGS) -o $@ $^
%.o: %.c
$(CC) $(CFLAGS) -c -o $@ $<
clean:
rm -f $(OBJS) $(TARGET)
ポイント:
-Wall -Wextraで警告を最大化しておくと、コンパイル時に潰せるバグが増える。
Step 2 ― vim から :make を叩く
vim を開いたまま、コマンドモードで
:make
と打つだけ。カレントディレクトリの Makefile が自動で実行される。
エラーがあれば QuickFix リスト に展開され、そのままエラー行に飛べる。
| コマンド | 意味 |
|---|---|
Ctrl + w , [jkhl] |
ウィンドウを切り替える |
:make |
make 実行 |
:copen |
QuickFix ウィンドウを開く |
:cnext / :cprev
|
次/前のエラーへジャンプ |
:cc |
現在のエラー行へ |
:cclose |
QuickFix を閉じる |
まとめ
| やること | 設定 |
|---|---|
| Makefile にビルドルールを書く |
CC, CFLAGS, SRCS を整理 |
vim から :make を実行 |
QuickFix でエラー即ジャンプ |