はじめに
dotfiles、便利ですよね。
でも環境が変わるごとにシンボリックリンク貼ったり、大変ですよね。
しかも環境が変わるってのは普通はあんまりないですし、何すればいいんだっけ?ってなりますよね。よね??
私はなります。
対象者
- すでにdotfilesを運用してるひと
- NeoBundleでVimプラグインを管理しているひと
- 毎回いちいち設定するのめんどくせえってひと
一括処理しよう
一度、バッチ処理するシェルプログラム書いておけば安心ですね。
はい、書きました。
init_dotfiles.sh
#!/bin/sh# current dircd$(dirname $0)# download neobundle filesif[ -e ~/dotfiles/vimfiles/bundle/neobundle.vim ];thenecho"neobundle found"is_existed=trueelseecho"install neobundle"
mkdir -p ~/dotfiles/vimfiles/bundle/
git clone https://github.com/Shougo/neobundle.vim ~/dotfiles/vimfiles/bundle/neobundle.vim
is_existed=falsefi# make symlinkfor dotfiles in .?*;docase$dotfiles in
..)continue;;
.git)continue;;
*)
ln -Fis "$PWD/$dotfiles"$HOME;;esacdoneif[ -e ~/.vim ];thenecho".vim found. rename .vim dir"else
ln -vFis ~/dotfiles/vimfiles ~/.vim;fi# install & update NeoBundle pluginsif["${is_existed}"==true];thenecho"running NeoBundleUpdate...\n"
vim -u ~/.vimrc -i NONE -c "try | NeoBundleUpdate! | finally | q! | endtry" -e -s -V1
elseecho"running NeoBundleInstall...\n"
vim -u ~/.vimrc -i NONE -c "try | NeoBundleInstall! | finally | q! | endtry" -e -s -V1
fiecho"\ncompleted!"
動作環境
CentOS 6.5, OS X 10.9.5のみ確認済みです。
想定する構成は
dotfiles
│ .vimrc
│ .bashrc
~
│ init_dotfiles.sh
└─ vimfiles
└─ bundle
のような感じです。
運用
非常に簡単です。
$ cd ~
$ git clone https://github.com/your_account/dotfiles.git
$ sh init_dotfiles.sh
以上です。ね、簡単でしょ?
ちなみにすでに環境がある状態で
$ sh init_dotfiles.sh
とするとプラグインのアップデートがかかります(NeoBundleUpdate)
おわりに
注意点がいくつかあります。
- Gitで2段階認証している場合はMacからだとPushできない可能性があります。
- vimfiles/bundle/以下がgitignoreされていない場合、何か良くないことが起こりそうな気もします
- ルートディレクトリの.vim/や.bashrcは事前に移動か削除しておく必要があると思います。
以上です。
Enjoy! XD