おいお前ら、WindowsXP上のDropboxでVimの環境を同期すっぞ。ただしジャンクションには注意しろよ

本記事では、Vimの環境をWindowsXP上のDropboxで別PCと同期するための方法について述べる。なお、ここで述べることは、Vimの同期に限らず、他のアプリケーションの設定の同期にも応用できる。

Vimの環境をDropboxで同期する場合は、基本的には以下の記事を参考にすればOK*1

DropBoxを使って、複数OS間でvimの環境を共有する方法 - かせいさんとこ

簡単に言えば、Vimの設定ファイルやプラグインが入ったディレクト*2Dropboxディレクトリに入れて、それに対するジャンクション(またはシンボリックリンク)をホームディレクトリに張ればよい、ということだ。

ただし、WindowsXPにおいては注意すべき点が二つある。

XPジャンクションの二つの罠

まず一つに、WindowsXPでは、ファイルへのジャンクションを作成できない、ということ。デフォルトでは、ファイルに対して作成できるのはハードリンクのみである。

なお、WindowsVista以降は、ファイル、ディレクトリともにシンボリックリンクを作成できるので、*nix 系列と同様、ファイルへのシンボリックリンクを貼ればよい。

http://homepage1.nifty.com/emk/symlink.html」を使えば、XPでもシンボリックリンクを使えるが、使用に際してある種の危険性があるようだ。それを承知の上で使うなら、話はここで終わる。使うのがためらわれる人は、この記事の続きを読むこと!

話を戻すと、WindowsXPでは、ファイルへのジャンクションを作成できない。かといって、設定ファイル .vimrc(または _vimrc)をハードリンクで同期させようとしても、うまくいかない(実験済み)。これは、ハードリンクで生まれた別名リンクの実体がDropboxフォルダではなくDropboxの版別キャッシュフォルダ(Application Data内)に配置されてしまっているからである。

もう一つの注意点は、「ジャンクションの罠 | 水無月ばけらのえび日記」で書かれているように、「ジャンクションを消すと、ジャンクション元のディレクトリの中のファイルも消えてしまう」というもの。

これについては、覚えておいて回避すればいいのだが、うっかり消してしまうということもあるだろう。

これらの二つの罠を回避しつつ、Vimの設定ファイルを同期するには、次の方法をとればよい。

解決法

GUIジャンクション作成ツールとして、リンク作成シェル拡張 for Windows 2000/2003/XPを使う。ダウンロードして、インストールしておくこと。

ジャンクション作成は以下の手順を踏む。まず、_vimrcファイルをDropbox内の .vim (または vimfiles)ディレクトリに入れておく。そして、このディレクトリに対してジャンクション ~/vimfiles を作成する。さらに、~/_vimrc を作成し、この中で

source ~/vimfile/_vimrc

として、真の _vimrc を読み込む。これにより、ファイルへのジャンクションを用いることなく、_vimrc ファイルを同期できる

また、このツールは、readmeにあるように、エクスプローラ上でジャンクションディレクトリを消しても、元のディレクトリの中身が消えることはない。なので、安心して削除操作ができる。

*1:Vim以外のアプリケーションも、同様のやり方で同期できる。

*2:普通 .vim や vimfiles などの名前がついている。