Vim 設定ファイルを github で管理する

Vimの設定を各環境で統一するために設定ファイルを github で管理する。
Google で "dotfiles" で検索すると大量に出てくる方法である。

方針

    • vimfiles/, _vimrc, _gvimrc を dotfiles/ 以下に配置して github に登録
    • それぞれの環境では HOME ディレクトリにこれらのファイル/ディレクトリへのシンボリックリンクを作成
    • プラグインについては NeoBundle で管理する
      • neobundle.vim は git submodule で vimfiles/bundle に登録

ファイル構成

ファイル構成は以下のようになる。

  dotfiles/
    +--vimfiles/
    |    +--bundle/  プラグイン管理用
    |    +--backup/  バックアップファイル保存先
    |    `--swp/     スワップファイル保存先
    +--_vimrc
    `--_gvimrc

git 管理のための細かい事

無視設定

git管理したくないファイルのために .gitignore ファイルに以下を記載する

# bundle ディレクトリ以下のファイルを無視
vimfiles/bundle/

# バックアップ、スワップファイルを無視
.*~
*~
*.swp
空ディレクトリの管理

git は空のディレクトリを管理してくれない。
そのため、バックアップファイル保存先などの空ディレクトリを git 管理に追加する際は、そのディレクトリに空ファイルを置く。
私は .gitkeep というファイルを置いている。

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

dotfiles/ ディレクトリを ~/projects ディレクトリ以下にクローンした場合以下のようにシンボリックリンクを作成する。

Windows 7 環境の場合
  • 管理者権限でコマンドプロンプトを開く
    • [Windows]キーを押してスタートメニューを表示
    • [プログラムとファイルの検索]に"cmd"と入力
    • プログラム一覧に表示される "cmd.exe" にカーソルを移動させて[Ctrl]と[Shift]キーを同時に押しながら[Enter]キーを押す
  • HOME ディレクトリへ移動する
    • 環境変数 HOME を設定している場合以下のコマンドを入力
>cd %HOME%
>mklink /D vimfiles projects\dotfiles\vimfiles
>mklink _vimrc projects\dotfiles\_vimrc
>mklink _gvimrc projects\dotfiles\_gvimrc

NeoBundle を取得

git submodule で登録している NeoBundle は dotfiles をクローンした時点では中身がないので、以下の手順で取得する必要がある。

$ cd dotfiles
$ git submodule init
$ git submodule update

Vimの起動

この後おもむろに gvim を起動すると、「Install bundles now?」というようなメッセージが表示される。
ここで[Yes]を選択すると、NeoBundle に設定設定している各プラグインが取得され、それぞれの環境で同じ設定のVimが実行することができるようになる。