Vim

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

More than 3 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