Обычно вы настраиваете специальный файл типа vimrc с настройками для конкретного языка, а затем используете автокоманды в вашем основном .vimrc для выполнения специального vimrc при необходимости. Вот моя конфигурация для файлов на Haskell (.hs
и т. Д.):
autocmd! BufNewFile,BufReadPre,FileReadPre *.hs so ~/.vim/haskell.vim
autocmd! BufNewFile,BufReadPre,FileReadPre *.hsc so ~/.vim/haskell.vim
autocmd! BufNewFile,BufReadPre,FileReadPre *.lhs so ~/.vim/haskell.vim
autocmd! BufNewFile,BufReadPre,FileReadPre *.cabal so ~/.vim/haskell.vim
Мой ~/.vim/haskell.vim
делает такие вещи, как "set expandtab", чтобы использовать пробелы вместо вкладок, и всякую другую магию для форматирования и тому подобное. Вы можете часто скачивать хорошие версии для различных языков с http://vim.org и других сайтов.
Обратите внимание, что вы можете сделать гораздо больше, чем просто изменить настройки vim. Например, вы можете запустить файл через фильтр до и после редактирования:
" Edit gpg-encrypted ascii-armoured files
autocmd! BufReadPre,FileReadPre *.asc set bin
autocmd BufReadPost,FileReadPost *.asc '[,']!gpg -q -d
autocmd BufReadPost,FileReadPost *.asc set nobin
autocmd! BufWritePre,FileWritePre *.asc set bin
autocmd BufWritePre,FileWritePre *.asc '[,']!gpg -e
autocmd BufWritePost,FileWritePost *.asc undo
autocmd BufWritePost,FileWritePost *.asc set nobin