vim tags list




Настройка параметров пробела Vim по типу файлов (4)

В моей работе мне необходимо следовать стилю дома для отступов, который выглядит следующим образом:

  • 2 пробела при кодировании html и ruby
  • вкладки при кодировании javascript, с рекомендацией tabwidth = 4

Каков наилучший способ указать разные параметры пробелов в каждом типе файлов?


+1 к ответу Питера, но Vim также предлагает другое решение. Если вы хотите сделать что-то более сложное, чем одиночный setlocal , например, создать целую кучу параметров, команд и сопоставлений сразу, то функция vim's filetype plugin выйдет на помощь.

Вам нужно, чтобы в вашем .vimrc был добавлен плагин с ~/.vim/ftplugin/ruby.vim плагин, а затем для создания плагина, например, ruby, вы можете создать ~/.vim/ftplugin/ruby.vim . Технически вы можете использовать любые команды, которые вам нравятся здесь, для запуска, когда загружается файл Ruby, но рекомендуемые включают setlocal , map <buffer> , command -buffer и определяющие функции. Дополнительная информация содержится в Руководстве пользователя; если вы хорошо знакомы с скриптом vim, то :help 41.11 к :help 41.11 , иначе прочитайте :help usr_40 и :help usr_41 .


Ответ Питера достаточно прост, но, к сожалению, варианты неправильные. Вместо этого вам нужно использовать следующие параметры:

autocmd Filetype html setlocal ts=2 sw=2 expandtab
autocmd Filetype ruby setlocal ts=2 sw=2 expandtab
autocmd Filetype javascript setlocal ts=4 sw=4 sts=0 noexpandtab

Также обратите внимание:

  • Вы можете сделать vim show tab characters, используя :set list .
  • После правильной настройки параметров вкладки / пробела вы можете заставить vim восстановить файл (заменить пробелы на вкладки или наоборот), используя :retab! команда.

Чтобы вставить пробельные символы всякий раз, когда нажата клавиша табуляции, установите параметр «expandtab»:

:set expandtab

Следующим шагом будет управление количеством символов пробела, которые будут вставлены при нажатии клавиши табуляции, установите параметр «tabstop». Например, чтобы вставить 2 места для вкладки, используйте:

:set tabstop=2

ref: http://vim.wikia.com/wiki/Converting_tabs_to_spaces


есть много способов, но вот простой, понятный способ. добавьте эти строки в ваш ~/.vimrc :

autocmd Filetype html setlocal ts=2 sts=2 sw=2
autocmd Filetype ruby setlocal ts=2 sts=2 sw=2
autocmd Filetype javascript setlocal ts=4 sts=4 sw=4




preferences