追記 20130908
素直にEditorConfig http://editorconfig.org を使おう。
project localなVimの設定をしたい。tab indent派とspace indent派の争いに巻き込まれた時とかだ。space 2個派とspace 4個派とspace 8個派の戦いに巻き込まれた時もだ。Shift_JIS (cp932) やEUC JPを強要された時も悲惨だ。全てのfileにmode-lineを書いて回るのも疲れる。
Project.vimを使うのは面倒そうだし、あれは
~/.vimprojects
に全てのproject定義を集約して了うらしい。あほか。しかもだから、全て絶対pathだ。あほか。project毎に.vimprojects
を置ける風にするpatchも有る様だが、やっぱり面倒だ。そこで、ぱくったcodeを
.vimrc
に書く。
" Load settings for each location. " http://vim-users.jp/2009/12/hack112/ augroup vimrc-local autocmd! autocmd BufNewFile,BufReadPost * call s:vimrc_local(expand('<afile>:p:h')) autocmd BufReadPre .vimprojects set ft=vim augroup END function! s:vimrc_local(loc) let files = findfile('.vimprojects', escape(a:loc, ' ') . ';', -1) for i in reverse(filter(files, 'filereadable(v:val)')) source `=i` endfor endfunction
bufferを開いた時に、rootから順番に.vimprojects
fileを探し (findfile→reverse)、default設定に上書きしてゆく (source)。有り難い。
cf. Vim-users.jp - Hack #112: 場所ごとに設定を用意する http://vim-users.jp/2009/12/hack112/