読者です 読者をやめる 読者になる 読者になる

vimでnode.jsのプロジェクトだけ2スペースタブにする

.vimrcに

augroup vimrc-project
    autocmd!
    autocmd BufNewFile,BufReadPost * call s:vimrc_project(expand('<afile>:p:h'))
augroup END

function! s:vimrc_project(loc)
    let files = findfile('.vimrc.project', escape(a:loc, ' ') . ';', -1)
    for i in reverse(filter(files, 'filereadable(v:val)'))
        source `=i`
    endfor
endfunction

とか書いとく。これでカレントディレクトリをさかのぼって.vimrc.projectという設定ファイルを読む。ので、プロジェクトのディレクトリに.vimrc.projectをおく。そこに

autocmd FileType javascript setlocal softtabstop=2
autocmd FileType javascript setlocal shiftwidth=2
autocmd FileType javascript setlocal expandtab

とか書く。.vimrc.projectはグローバルでgitignoreしてる。