WEBサービス創造記

WEBサービスを作ったり保守したりしてる人のメモブログです。

Dropboxを利用してWindows/Linux/Macなどの異なるOS間でVimの設定を同期する

      2012/12/20

Linux と Windows 間で Vim の設定を同期できる

複数のPCでVimを使用していると、設定の同期が面倒ですが、Dropboxを利用すれば複数のPC間で、なおかつPC間のOSが異なっていても設定の同期をすることが可能です。
下記に具体的な同期の手法があったので参考にさせていただいて実践してみました。以下はそのときのメモです。

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

設定環境

以下の3台のPC、2種類のOS間で同期します。

  • EeePC901 Ubuntu10.04
  • 自作PC Windows XP
  • Vaio Windows XP

DropBox内に以下のディレクトリを作成し、そこに設定ファイル本体を置きます。

~/DropBox/dotfile/.vimrc
~/DropBox/dotfile/.vim/

シンボリックリンクの生成

まず、DropBox内の設定ファイル本体へのシンボリックリンクを生成します。

.vimrcの設定・設置

共有しない設定の確認

個々の環境で保存し、他のPC間と共有しない箇所を確認し、.vimrc内でその設定をします。
例えば、スワップファイルやバックアップファイル、セッションファイルなどです。
これらを共有したくない場合はそれぞれのPCのホームディレクトリにおくなどします。

" セッションファイルをホームディレクトリに保存
au VimLeave * mks! ~/session.vim
au VimEnter * :so ~/session.vim

" スワップファイルをホームディレクトリに保存
set swapfile
set directory=~/.vimswap

" バックアップファイルをホームディレクトリに保存
set backup
set backupdir=~/.vimbackup

特定のOSだけに適用する設定を確認

Windowsだけに設定したい項目、またはその逆でLinuxだけに設定したい項目などがある場合があります。
Vimが動作しているOSがWindowsかどうかを以下の制御構文で条件分岐し、Windows専用の設定はif文のブロック内に書くことにします。

if has('win32') || has('win64')
    " Windowsの場合の処理
    :let $VIMFILE_DIR = 'vimfiles'
else
    " Windows以外の場合の処理
    :let $VIMFILE_DIR = '.vim'
endif

上記では、WindowsのVimでは.vimの代わりに、vimfilesを参照するので、以後の記述で.vimディレクトリのパスの整合性を保てるようにしています。

Linuxでのシンボリックリンク作成

# ln -s ~/Dropbox/dotfile/.vimrc ~/.vimrc
# ln -s ~/Dropbox/dotfile/.vim ~/.vim

Windows XPでのシンボリックリンク作成

Windows XPでは標準でシンボリックリンク作成コマンドをサポートしていません。Vistaからなら標準でサポートしているようですが、今回はXPとLinux間での同期ということなので、以下のツールを使用してリンクを作成します。

リンク作成シェル拡張

リンク作成シェル拡張をインストールすると、右クリックでドラッグ&ドロップした時に、コンテキストメニューが表示されるようになります。

そこ中でリンクを作るという項目があるのでそれをクリックするとリンクが生成さます。
したがって、下記手順でDropBox内のVim設定ファイルへのリンクを作成し、整合性をとることができます。

  1. エクスプローラを開き、~/Dropbox/dotfile/.vimrc 右クリックしたままホームフォルダ直下に持って行く
  2. 先ほどのリンク作成シェル拡張をインストールすると、右クリックを放した時に、リンクを作るとメニューに追加されてるので、「リンクを作る」をクリック
  3. .vimrc が出来たら、それを _vimrc にリネームする
  4. .vim も同じ要領で行う。.vim の場合は vimfiles にリネームする

これまでの手順で各PC間でVimが正常に動作することを確認。これでわずらわしい.vimrcの同期がなくなりました。

 - Vim , , ,