Windowsでポータブルなvim環境を作る
対象
動機
- %userprofile%を使いたくない。
- USBメモリで持ち運びたい。
どうやって?
$HOMEをどこかで設定すればいい。でもUSBメモリで持ち運びたいので、環境変数を指定する選択肢は無し。ログアウト時に設定が消えるVolatile環境変数という手もあるが、vimを起動する前に設定するのを忘れそう。vimの起動時に設定する方法はないだろうか?
vimの起動
vimのヘルプを見ると、一番最初に読み込まれるファイルは$VIM\vimrcなので、ここで$HOMEを設定できないだろうか?($VIMはgvim.exeがある場所)
スタート時に、Vimは環境変数とファイルを調べ、然るべく値を設定する。Vimはこの順序で取り掛かる。
- オプション 'shell' と 'term' を設定する *SHELL* *COMSPEC* *TERM*
- 引数を処理する
- 環境変数とファイルのExコマンドを実行する
→ $VIM\vimrc
→ $HOME\_vimrc($HOMEが設定されていないときは、"$VIM\_vimrc" が読み込まれる。)- プラグインスクリプトを読み込む *load-plugins*
- 'shellpipe' と 'shellredir' を設定する
- "-n" コマンド引数が使用されていたら、'updatecount' を0に設定する
- バイナリオプションを設定する
- GUIの初期化を行う
→ $VIM/gvimrc
→ $HOME\_gvimrc($HOMEが設定されていないときは、"$VIM\_gvimrc" が読み込まれる。)- viminfoファイルを読み込む
- quickfixファイルを読み込む
- 全てのウィンドウを開く
- スタートアップコマンドが実行される
最初に見つかった vimrc、gvimrc が $MYVIMRC、$MYGVIMRC に設定される。
$VIM\vimrcを見ると、最初に$VIM\vimrc_local.vimを読み込む作りになっているので、ここで設定すればよいのではないだろうか?
$VIMにhomeディレクトリを作成する場合、次の内容の$VIM\vimrc_local.vimを作成する。
gvimを起動して、$HOMEを確認してみると、ちゃと設定できてた!