c4se記:さっちゃんですよ☆

.。oO(さっちゃんですよヾ(〃l _ l)ノ゙☆)

.。oO(此のblogは、主に音樂考察Programming に分類されますよ。ヾ(〃l _ l)ノ゙♬♪♡)

音樂は SoundCloud に公開中です。

考察は現在は主に Scrapbox で公表中です。

Programming は GitHub で開發中です。

directory毎に (project localな) Vimの設定を行う

追記 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/