Vim で環境に合わせて Visual Studio の環境変数を設定する
Vim から cl.exe を呼び出す場合、vcvarsall.bat に書かれている環境変数を定義しておく必要があります。
端末から Vim を起動させる場合は vcvarsall.bat を叩いてから Vim を起動させればいいんですが、直接 gvim を起動させる事が多いと思います。
と、いうことで vimrc に環境変数を書いておくのが一番手っ取り早いかなーと思い、インストールされている Visual Studio の環境に合わせて環境変数を設定するようなスクリプトを書いてみました。
[ソース]
let s:msvc_dirs = [ \ "C:/Program\ Files/Microsoft\ Visual\ Studio\ 11.0", \ "C:/Program\ Files/Microsoft\ Visual\ Studio\ 10.0", \ "C:/Program\ Files/Microsoft\ Visual\ Studio\ 9.0", \ "C:/Program\ Files/Microsoft\ Visual\ Studio\ 8.0", \] function! s:set_msvc_path(msvc_path) if has_key(s:, "msvc_path") || !isdirectory(a:msvc_path) return endif let s:msvc_path = a:msvc_path let path = a:msvc_path let $VSINSTALLDIR=path let $VCINSTALLDIR=$VSINSTALLDIR."/VC" let $DevEnvDir=$VSINSTALLDIR."/Common7/IDE;" let $PATH=$VSINSTALLDIR."Common7/Tools;".$PATH let $PATH=$VCINSTALLDIR."/bin;".$PATH let $PATH=$DevEnvDir.";".$PATH let $INCLUDE=$VCINSTALLDIR."/include;".$INCLUDE let $LIB=$VCINSTALLDIR."/LIB;".$LIB let $LIBPATH=$VCINSTALLDIR."/LIB;".$LIBPATH endfunction function! s:setup_msvc_path() call s:set_msvc_path(get(filter(copy(s:msvc_dirs), "isdirectory(v:val)"), 0, "")) endfunction call s:setup_msvc_path()
存在するディレクトリをチェックして Visual Studio 2012 から優先的に設定します。
インストールしているディレクトリが違うのであれば s:msvc_dirs を変更すればいいかと。