MSBuildをVimのmake(QuickFix)から呼び出す方法
前回: VimでWPF(MSBuild)の開発環境を整える(要VS2008) - void palm3r_blog(2008);
色々試行錯誤した結果、無事解決したのでその方法をまとめました。
MSBuild.exe本体にパスを通す必要があるので、環境変数のPATHに次のパスを追加します。
C:\WINDOWS\Microsoft.NET\Framework\v3.5
$VIMRUNTIME/compilerに以下の内容で"msbuild.vim"を作成する。
" Vim compiler file " Compiler: Microsoft MSBuild " Maintainer: palm3r (http://d.hatena.ne.jp/palm3r/) " Last Change: 2008 Sep 14 if exists("current_compiler") finish endif let current_compiler = "msbuild" if exists(":CompilerSet") != 2 " older Vim always used :setlocal command -nargs=* CompilerSet setlocal <args> endif " default errorformat CompilerSet errorformat= \%E%f(%l\\,%c):\ error\ %m, \%W%f(%l\\,%c):\ warning\ %m, \%-G%.%# " default make CompilerSet makeprg=MSBuild \\ /nologo \\ /consoleloggerparameters: \NoItemAndPropertyList; \ForceNoAlign;
$VIM/vimrcに以下を追記。
" MSBuild autocmd BufNewFile,BufRead *.proj,*.xaml setf xml autocmd BufNewFile,BufRead *.proj,*.cs,*.xaml compiler msbuild
これでmake後のエラージャンプも効くようになり、さらに快適なコーディングが出来るようになりました。
:cd c:/proj/hoge :make Sample.xaml.cs|35 col 4 error| CS0246: 型または名前空間名 'hoge' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。 Sample.xaml.cs|19 col 16 warning| CS0169: フィールド 'Sample.MainWindow.hoge_' は使用されませんでした。
クリーンやリビルド、プログラムの実行も出来る。
:make /t:clean # クリーン :make /t:rebuild # リビルド :make /t:run # 実行
アドバイスしてくれたid:ka-nachtさんに感謝!