読者です 読者をやめる 読者になる 読者になる

すがブロ

sugamasaoのhatenablogだよ

それすぐ実行!

C言語のちょっとしたファイルを書いたとき

いちいち別ターミナルや :! でセコセコ入力するのって結構面倒ですよね!
っていうか、ゆとり脳なんでトライ安堵エラーじゃないと開発できないので、ビルド〜実行までのサイクルは短ければ短い方が良いのだ。

どうするの?

こんな風にキーマップを登録しておくよ!

nmap ,e :!gcc -Wall % && ./a.out<CR>

こうすると、移動モードのときに , に続いて e ボタンを押すとコンパイルして実行してくれる。
ちょっと解説すると、:! で任意のコマンドを実行できて、かつ VimScript 中では % が現在読み込んでいるファイル名になるから、上記みたいに書ける。
さらに && で続ける事で、コンパイルが正常に動いた時のみ実行だ。

おれはこうしてる

この手の設定は言語毎に異なるから、ftplugin 内のファイルとして定義しておく。
おれは、c.vim だと他の vim ファイルと被りそうな気がしたので c_extra.vim に定義している。
~/.vim/ftplugin/c_extra.vim

" tab 設定
set softtabstop=4
set tabstop=4
set shiftwidth=4
set noexpandtab

" 即時実行
nmap ,e :!gcc -Wall % && ./a.out<CR>

とりあえずこんな感じ。他には gdb のマッピングとか、 splint の実行とかがあると便利だろう。
何はともあれ、インデント系と実行方法は言語によって異なるから、ftplugin で使い分けをしておいた方が良いのは間違いないですね。