unoh.github.com

秘伝のペケペケrcをつぎたす仕事

Tue Mar 23 19:00:00 -0700 2010

こんにちは。murahashi です。
秘伝のペケペケrcの継ぎ足し方―あるいはbashrc, vimrc, screenrc それぞれについて別の場所のファイルを読み込む方法、再読み込みする方法―をまとめました。

dotfiles_sauce.jpg

どこかからコピペしてきたドットファイルを継ぎ足し継ぎ足しで自分に合わせた設定をつくり、それをいろんなところに持ちまわっている人は多いと思います。どうせならということで github や bitbucket や coderepos に公開している人もいるでしょう。

私も dotfiles という1ディレクトリにファイルをまとめて github にpush、使いたい場所でgit cloneして ~/dotfiles/.bashrc へのシンボリックリンクを ~/.bashrc に置いて「やったー」と喜んでいました。

ただ、この方法だとサーバの環境によって変えたい部分が出てきたときに困ってしまいます。私は困ってしまいました。
windowsでもgvimつかってるけど、いろいろかえたい
私の設定だと vimbackup なる決め打ちディレクトリがユーザ配下にないといけない..
コーディング規約 などなど

dotfiles_tangle.jpg

というわけでbashrc, vimrc, screenrcそれぞれについて別の場所のファイルを読み込む方法を検索してまとめしました。

# .bashrc
if [ -f $HOME/dotfiles/.bashrc ]; then
      source $HOME/dotfiles/.bashrc
fi

# .vimrc
if filereadable(expand('~/dotfiles/.vimrc'))
  source ~/dotfiles/.vimrc
endif

# .screenrc
source dotfiles/.screenrc


$HOME/dotfiles 以下にファイルがあるのは私の場合なので、適宜読み替えてください。
各環境のペケペケrcでは別の場所のファイルを読み込んでから、環境依存の項目を書くようにします。後から書いたほうが有効になります。

再読み込みについて
ペケペケrcが気軽に書けるようになると、書いてすぐ反映したくなるものです。
正確には再読み込みできるようにそれぞれのペケペケrcを書く必要があるのですが、そこまで手が回っていません。
単純な再読み込みを以下にあげます。

# .bashrc 再読み込み
$ source ~/.bashrc

# .vimrc 再読み込み
vimのコマンドモードで
:source $VIMRC

# .screenrc 再読み込み
screenのエスケープキーを入力して
:source $HOME/.screenrc


それでは楽しいプログラミングライフを!
dotfiles_enjoy.jpg

参照

Vim-users.jp - Hack #108: vimrc で外部ファイルを取り込む

卜部昌平のあまり reblogしないtumblr - 俺の .screenrc が火を吹くぜ
Vim-users.jp - Hack #74: 簡単にvimrcを編集する

環境
$ uname -a
Linux fri 2.6.32.9-70.fc12.i686 #1 SMP Wed Mar 3 05:14:32 UTC 2010 i686 i686 i386 GNU/Linux
$ bash --version
GNU bash, version 4.0.35(1)-release (i386-redhat-linux-gnu)
$ vim --version
VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Dec  3 2009 08:50:41)
$ screen --version
Screen version 4.00.03 (FAU) 23-Oct-06


以上デース