Nukino's memorandum

とあるソフト屋の覚え書き

vim環境の再構築1(DropBoxでvim設定の共有)

最近vimでvundleとかpathogenとかでプラグイン管理するのが流行ってるっぽいので、私もやってみたい。
ついでなのでこの機会にvim環境を再構築してみようと計画してみた。

  1. vim設定の共有化
  2. neobundleでプラグイン管理
  3. 今使ってるプラグインの見直し
  4. ruby編集環境構築(quickrun、vim-refなど)

こんな感じの計画かな?

##vim設定の共有化について

使ってるPCでプラグインやその他設定が一致していると便利。

githubでvim設定を共有化するページを幾つか見つけたが、なんとなく同期させるには毎回コマンドを打たない といけないような気がする。

ものぐさな私はそんな鬱陶しいことやってられないので、今使ってるDropBoxを利用すればDropBoxフォルダに置 いておくだけで、自動的に同期してくれるから便利な気がする。

もちろんSugarSyncなどローカルにあるフォルダを同期してくれるオンラインストレージならなんでもおk。

DropBoxでアカウント取りたい場合はここからアカウント作ってくれると嬉しいです 。(招待機能で招待した人された人双方に256MB容量が増える。でもアカウント作ったメアドが私にばれちゃうの で注意)

ユーザvimrc、ユーザgvimrcをDropBoxフォルダで管理

ユーザvimrc、ユーザgvimrcは私の環境はWindowsなので、$HOME/_vimrc$HOME/_gvimrcにあります。

これをDropBoxフォルダに置きたい。一番簡単なのは

SET HOME=%DROPBOX_DIR%

みたいに$HOMEをDrobBoxフォルダにしてしまうことですが、これは好みではない。

なので、ハードリンクを使おうと思う(Windows 2000以降&$HOMEとDropBoxフォルダが同じボリューム&その ボリュームがNTFSフォーマットの場合使用可能)。

最近のMac OSやlinuxユーザはハードリンクなりシンボリックリンクなりを使えば可能だと思う(lnコマンドだっ け?)。
Windows Vista以降ではシンボリックリンクが実装されてるみたいなんで、同一ボリュームの制限はないみたい (mklinkコマンドを使用?)

私はPPxというファイラでサクッと作ってしまいましたが、持ってない人はコマンドラインを叩けば可。

$HOME/_vimrc、$HOME/_gvimrcをDropBoxフォルダへ移動した上で(不安ならバックアップ取った上で)

fsutil hardlink create %HOME%\_vimrc %DROPBOX_DIR%\_vimrc
fsutil hardlink create %HOME%\_gvimrc %DROPBOX_DIR%\_gvimrc

とかすれば出来るんじゃないかと思います。

残念ながらハードリンク or シンボリックリンクを使える条件を満たしてない場合は若干イリーガルだけど、

SET MYVIMRC=%DROPBOX_DIR%\_vimrc
SET MYGVIMRC=%DROPBOX_DIR%\_gvimrc
SET VIMINIT=:source %MYVIMRC%
SET GVIMINIT=:source %MYGVIMRC%

とかすればOK(当然コントロールパネル等で上記コマンドに相当する環境変数の設定をやること)

最初ハードリンクがファイルへのリンク貼れるの知らなくて、こっちのイリーガルな方法でやってたんで、動作 は確認済み(ただし私の環境ではMYGVIMRCは環境変数展開じゃ駄目で直接パス打ち込まないと動かなかった)

または$HOME/_vimrcに

`$HOME/_vimrc`
1
source expand('$DROPBOX_DIR') . '/_vimrc'

とか書いてもおk・・・だと思う(試してない)

$RUNTIMEPATHの追加

$RUNTIMEPATHは以下のように運用しようと思う

$DROPBOX_DIR/vimfiles
共有するプラグイン、vim設定を入れる
$HOME/vimfiles/
そのパソコン固有の設定を入れる
$HOME/vimfiles/after
そのパソコン固有の設定を入れる。共有設定を上書きしたい場合に利用する

ということでDROPBOX_DIRという環境変数を設定した上で、ユーザvimrcの先頭に以下のように記述する

`$HOME/_vimrc`
1
2
let dropbox_vim=substitute(expand($DROPBOX_DIR), "\\", "/", "g") . '/vimfiles'
	let &runtimepath = dropbox_vim . "," . &runtimepath

$vimのpluginとかより先にロードされちゃうのが若干気になるが、今のところ特に問題はなさそう。

Comments