Как настроить различные настройки вкладок для разных языков в Vim?


в своем .vimrc у меня есть общая вкладка с двумя пробелами, и я хотел бы переопределить ее на базовом языке (то есть четыре для Python и т. д., В противном случае используйте значение по умолчанию), но у меня возникли проблемы с поиском любого хорошего примера этого.

5 62
vim

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/