vimからcl.exeを呼び出してcをコンパイル

学校の授業では,windows環境でcをやっていますが、授業で作るプログラムなんてせいぜい数百行です。なので、このときに、vimから :!cl hoge.c なんてできるといいのですが、初期状態だとただのpathの通ってないコマンドプロンプトが起動してコンパイルできないので、今までvisualstudio コマンドプロンプトを立ち上げてからコンパイルしてました。
ですが、昨日なんとなくやってみたら出来たので方法を書いておきます。


具体的には以下の内容をcompile.batとして$VIMに作成。

@echo off
call "C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat"  > nul 2>&1
cl %1 /nologo

それから、_vimrcに以下の内容を追加。

command! Ccompile call s:Ccompile()
function! s:Ccompile()
	let name=expand("%:p")
	let syntax="compile.bat ".name
	let ret=system(syntax)
	echo ret
endfunction
augroup MyAutoCmd
	autocmd bufnewfile,bufread *.c :noremap <F7> :<C-u>Ccompile<CR>
   autocmd bufnewfile,bufread *.c :noremap <F8> :<C-u>! %:r<CR>
augroup END

これでコンパイル,で実行できます。


まぁなんかもっといい方法がある気がしますが、授業には十分でしょう。