Не используйте .vimrc для конкретных типов файлов, есть невероятно точный механизм, который Линч описал для настроек типов файлов или ситуационных vimrc.
Например: некоторые вещи из моего .vim
.vim/ftdetect:
haml.vim macports.vim puppet.vim
hiveminder.vim markdown.vim ruby.vim
.vim/ftplugin:
haml.vim portfile.vim sshconfig.vim
html_snip_helper.vim python.vim tmux.vim
javascript.vim python_match.vim zsh.vim
markdown.vim sass.vim
plist.vim scss.vim
и, скажем, мой файл sshconfig.vim (я установил «K», чтобы дать мне man-страницу для sshconfig с заголовком, на котором находится мой курсор. Хорошая успокоенность, этот трюк.)
" sshconfig ftplugin.
" At this point, only want to set man as the keywordprg
if exists("b:did_ftplugin")
finish
endif
let b:did_ftplugin = 1
" Customizations for sshconfig files
" what I _want_ is to jump to the heading
set keywordprg=man\ ssh_config\ -P\ \'less\ -p\ <cword>\'
Теперь в .vim / ftdetect / macports.vim у меня есть код, чтобы определить, является ли этот файл файлом порта.
" Portfile
au BufNewFile,BufRead Portfile set filetype=portfile
au FileType portfile compiler portfile
Я должен вытащить этот порт-компилятор и поместить его в ftplugins, потому что вы можете видеть, как эта система может стать довольно сумасшедшей, но для этого нужны ctags и git.