Windows と Mac で Vim の設定を共有したい


昨日の晩は諦めてしまったことがようやく解決しました.

Mac ユーザだった僕がプロジェクトの都合から Windows 上でも開発することになって,急遽,Mac 上の資産を Windows でも再利用する設定に悩んでいるという状態です.Vim については,元々は $HOME/.vim のかわりに Dropbox (smartnova)/lib/vim を使うことで複数の Mac の間で設定を共有化していました.

たぶん,ほとんどの設定は Windows でも利用できるだろうと思い,設定を探していた次第です.

まずは基本的なこととして Windows 上の Vim はどこから初期設定ファイルを読み込むのかということです.Vim で :help startup してすぐにわかるのですが,環境変数の $HOME で示されたディレクトリから .vimrc や .gvimrc を読み込むようです.そこで,まずは Windows のシステム設定で HOME という変数を追加しました.ちなみに Microsoft Account と紐づいたアカウントのための c:\Users\wakit_000 なんてパスは使いにくいので,c:\wakita というフォルダを作成してそれをホームとして使っているので,ここでの設定は HOME=c:\wakita です.

次に,.vimrc で Dropbox 上の Vim の設定フォルダを指定します.ここで苦労したのですが,これも Vim で :help option-backslash の項に記載されていました.Vim スクリプトにおけるバックスラッシュの扱いは普通のプログラミング言語におけるそれに近いのですが,Windows でパスを指定する場合は例外的にバックスラッシュの特殊扱いの規則がかわるということです.ともかく,うまく動いた .vimrc の設定は以下のとおりです.

set runtimepath=$HOMEDropbox (smartnova)libvim,$VIM,$VIMRUNTIME
let $MYVIMRC="$HOME/Dropbox (smartnova)/lib/vim/user/startup.vim"
runtime userstartup.vim
runtime! user*-rc.vim
set fileformats=unix,dos

今,ながめると startup.vim を二回も指定しているのは冗長な気がする...そのうち,調べておこう.

ついでなので,gVim のための設定も紹介します.

set lines=50 columns=90
if has('mac')
  set guifont=Menlo:h14
endif
if has('win32')
  set guifont=Inconsolata:h10
endif