Windows上でのvimの環境構築
いろいろと設定を変更していると、必要なプラグインを追加した時によくわからないエラーになったりする。
そのたびに、vimを入れ直したりするのは、非常に面倒なので、vimの設定について一度、ちゃんと整理してみる。
前提/構築環境
なお、以前にvimを使っていた人は、悪さしないように、以下のファイル等々を別の場所に移しておく。あとで、必要に応じて復旧する。
- $VIM配下
- $HOME\_vimrc
- $HOME\_gvimrc
- $HOME\vimfiles配下
インストール
:version (省略) システム vimrc: "$VIM\vimrc" ユーザ vimrc: "$HOME\_vimrc" 第2ユーザ vimrc: "$HOME\vimfiles\vimrc" 第3ユーザ vimrc: "$VIM\_vimrc" (省略) システム gvimrc: "$VIM\gvimrc" ユーザ gvimrc: "$HOME\_gvimrc" 第2ユーザ gvimrc: "$HOME\vimfiles\gvimrc" 第3ユーザ gvimrc: "$VIM\_gvimrc" (省略)
なお、$VIMや$HOMEがどこになっているかは、以下のコマンドで確認できる。
:echo $VIM :echo $HOME :echo $VIMRUNTIME
vimの設定ファイルであるvimrcは、上記の順に読み込まれ、同じパラメータに別の設定をした場合、あとに読まれるファイルで上書かれることになる。
そして、香り屋版のvimの場合、最初に読み込まれるシステムvimrcが同梱されている。つまり、香り屋版を使った場合、利用者は何も設定しなくても、このシステムvimrcの設定はされることになる。さらに、香り屋版に同梱のシステムvimrcから、設定の前に、$VIMRUNTIME/vimrc_example.vimも読み込んでいる。
したがって、香り屋版のvimをそのまま使っている場合、知らないうちに、以下のvimrcの設定が有効になっている。
(システムvimrcから読み込み): "$VIMRUNTIME\vimrc_example.vim" システム vimrc: "$VIM\vimrc" システム gvimrc: "$VIM\gvimrc"
そのため、プラグインを導入した際に、どうしてもエラー等が発生する場合には、上記の設定もちゃんと確認する必要がある。
ちなみに、香り屋版に同梱のシステムvimrcでは、このファイルの設定をskipするためのオプションが用意されている。
- $VIM/vimrc_local.vimが存在し、変数g:vimrc_local_finishに0以外の値が設定されていれば、香り屋版に同梱のシステムvimrcをskipする。
- $HOME/.vimrc_first.vimが存在し、変数g:vimrc_first_finishに0以外の値が設定されていれば、香り屋版に同梱のシステムvimrcをskipする。
- 上記のどちらかのファイルに、変数g:no_vimrc_exampleに0以外の値が設定されていれば、$VIMRUNTIME/vimrc_example.vimをskipする。
この辺りは、以下の議論で追加された?
https://github.com/vim-jp/issues/issues/331
非常に複雑になっており、わかりづらい。。。
上記を理解した上で、以下の様にvimrcを使い分けるのが良いと思われる。
neobundleをインストール
なにはなくとも、neobundleをインストールする。
基本的にhttps://github.com/Shougo/neobundle.vimに記載しているとおりにやればよい。ただし、Windowsの場合、パスが少しことなる。
- bundleフォルダを作成
- $HOME\vimfiles\bundleを作成する
- neobundleをcloneする
- vimrcを作成
- $HOME\vimfiles\vimrcを作成
2. のコマンドは以下のとおり。
> git clone https://github.com/Shougo/neobundle.vim $HOME\vimfiles\bundle\neobundle.vim
3. は以下の内容を記載。
" Note: Skip initialization for vim-tiny or vim-small. if !1 | finish | endif if has('vim_starting') set nocompatible " Be iMproved " Required: set runtimepath+=~/vimfiles/bundle/neobundle.vim/ endif " Required: call neobundle#begin(expand('~/vimfiles/bundle/')) " Let NeoBundle manage NeoBundle " Required: NeoBundleFetch 'Shougo/neobundle.vim' " My Bundles here: " Refer to |:NeoBundle-examples|. " Note: You don't set neobundle setting in .gvimrc! call neobundle#end() " Required: filetype plugin indent on " If there are uninstalled bundles found on startup, " this will conveniently prompt you to install them. NeoBundleCheck
あとは、適宜必要な設定を$HOME\vimfiles\vimrcに記載する。
githubで管理しているdotfilesを使う
github上でdotfilesを管理する人が多い。そうすることで、どの環境からでも同じ設定でvimを使うことができる。
Linuxでも使うことを考慮し、vimの設定ファイルは通例に習い.vimrc、.gvimrcとしておく。ただし、windowsでは、_vimrcやvimrcというファイル名のため、リンクを張って対応する。
- githubのレポジトリに登録
- 登録方法については、ここでは省略する。
- githubのレポジトリをclone
- ここでは、$GIT\dotfiles\.vimrc、$GIT\dotfiles\.gvimrcとする
- リンクを張る
C:\Windows\system32>mklink %HOMEPATH%"\vimfiles\vimrc" $GIT\dotfiles\.vimrc C:\Windows\system32>mklink %HOMEPATH%"\vimfiles\gvimrc" $GIT\dotfiles\.gvimrc
これで、ひと通りの環境構築完了。さて、エラーなく動くかな。。。