В моем .vimrc У меня есть общая настройка табуляции в два пробела, и я бы хотел переопределить это на (то есть четыре для Python и т.д., в противном случае используйте значение по умолчанию), но мне трудно найти хороший пример этого.
Как настроить различные настройки вкладок для разных языков в Vim?
Ответ 1
Просто поместите настройки в файл плагина filetype ~/.vim/ftplugin/LANGUAGE.vim. Мой ~/.vim/ftplugin/perl.vim содержит строки:
"
" ---------- tabulator / shiftwidth --------------------
" Set tabulator and shift width to 4 (Perl Style Guide)
"
setlocal tabstop=4
setlocal shiftwidth=4
"
Эти настройки будут автоматически действовать для каждого файла с типом файла 'perl' (новый или существующий).
Ответ 2
Эти другие ответы кажутся слишком сложными. Вместо того, чтобы возиться с еще большим количеством каталогов и файлов в дереве ~/.vim, просто добавьте следующее к своему ~/.vimrc.
autocmd Filetype python setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4
(вы можете быть l33t и сокращать параметры до et ts=4 sw=4 sts=4
). Я нашел это в
Настройка параметров пробела Vim по типу файлов
Ответ 3
Мой ответ основан на этом совете на VIM Wiki. Этот ответ использует каталог "after", поэтому вам не придется гадать с прилагаемыми файлами плагинов для разных типов файлов.
Например, чтобы указать пользовательские настройки для файлов Python, создайте файл с именем python.vim
, чтобы сохранить настройки Python:
setlocal expandtab
setlocal shiftwidth=4
setlocal softtabstop=4
Поместите этот файл в
-
~/.vim/after/ftplugin
(Linux) -
$HOME/vimfiles/after/ftplugin
(Windows)
И, наконец, вы должны иметь это в своих .vimrc
(Linux) или _vimrc
(Windows):
filetype plugin indent on
Ответ 4
Как правило, вы настраиваете специальный файл типа 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
My ~/.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
Ответ 5
Я использую плагин config config и добавляю файл .editorconfig ко всем моим проектам - он позволит вам определять разные настройки отступов для разных проектов используя тот же язык программирования, который может быть полезен, поскольку различные проекты на одном языке имеют разные стандарты кодирования.
Вы можете увидеть пример настроек, которые вы можете установить здесь: http://editorconfig.org/