Vimでプロジェクト固有の設定を適用する

More than 5 years have passed since last update.

基本の設定でははインデントはスペース2つ。

けど、プロジェクトAではインデントをハードタブにしたい。

といった時にプロジェクト固有のVimの設定ができると便利。

もちろんできます。


.vimrc

まずは.vimrcにそれを実現する設定を記述


~/.vimrc

augroup vimrc-local

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

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


これで、.vimrc.localというファイルがあると、それを読み込んでくれるようになる。


.vimrc.local

あとは、下のようにプロジェクト固有の設定ファイルをつくってやればいい。


path_to_project/.vimrc.local

set noexpandtab

set tabstop=4
set shiftwidth=4


ついでに

.vimcrc.localをバージョン管理から除く


~/.gitconfig

[core]

excludesfile = ~/.gitignore


~/.gitignore

.vimrc.local