Как настроить различные настройки вкладок для разных языков в Vim?
в своем .vimrc у меня есть общая вкладка с двумя пробелами, и я хотел бы переопределить ее на базовом языке (то есть четыре для Python и т. д., В противном случае используйте значение по умолчанию), но у меня возникли проблемы с поиском любого хорошего примера этого.
5 ответов:
просто поместите настройки в файл плагина filetype ~/.vim / ftplugin / язык.напор. Мой./~ vim / ftplugin / perl.vim содержит строки:
" " ---------- tabulator / shiftwidth -------------------- " Set tabulator and shift width to 4 (Perl Style Guide) " setlocal tabstop=4 setlocal shiftwidth=4 "
эти настройки будут автоматически действовать для каждого файла с типом файла 'perl' (новый или существующий).
эти другие ответы кажутся слишком сложными. Вместо того, чтобы возиться с еще большим количеством каталогов и файлов в вашем ~/.дерева ВИМ, просто добавьте следующие строки в ваш ~/.vimrc.
autocmd Filetype python setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4
(вы можете быть l33t и сократить параметры
et ts=4 sw=4 sts=4
). Я нашел это в Настройка параметров пробела Vim по типу файла
мой ответ основан на этот совет на Вики VIM. Этот ответ использует каталог "после", поэтому вам не придется возиться с поставляемыми файлами плагинов для разных типов файлов.
например, чтобы задать пользовательские настройки для файлов 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
обычно вы настраиваете специальный файл типа vimrc с настройками для определенного языка, а затем используете autocommands в своем основном.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 и другие сайты.обратите внимание, что вы можете сделать гораздо больше, чем просто изменить настройки ВИМ. Например, вы сможете запустить файл через фильтр до и после редактирования:
" 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
Я использую редактор plugin и добавить .editorconfig file to all my projects-это позволит вам определить различные настройки отступов для разных проектов, используя один и тот же язык программирования, который может быть полезен, поскольку часто разные проекты на одном языке имеют разные стандарты кодирования.
вы можете увидеть пример настройки можно задать здесь: http://editorconfig.org/