Подтвердить что ты не робот

Как изменить размер вкладок в Vim?

Каждый раз, когда я добавляю селектор в CSS, и я нажимаю Enter для определения свойств, он заканчивается следующим образом:

#selector {
        property: value;
}

(вкладки с 8 пробелами)

Как настроить Vim, чтобы сделать это следующим образом:

#selector {
    property: value;
}

(вкладки с 4 пробелами)

4b9b3361

Ответ 1

Расширение ответа на zoul:

Если вы хотите настроить Vim для использования определенных настроек при редактировании определенного типа файла, вы хотите использовать автокоманды:

autocmd Filetype css setlocal tabstop=4

Это сделает так, чтобы вкладки отображались как 4 пробела. Установка expandtab приведет к тому, что Vim фактически вставляет пробелы (число их контролируется tabstop) при нажатии вкладки; вы можете использовать softtabstop для правильной работы backspace (т.е. уменьшить отступ, когда это произойдет, если использовать вкладки, а не всегда удалять один char за раз).

Чтобы принять окончательное решение о том, как настроить, вам нужно прочитать документы Vim на tabstop, shiftwidth, softtabstop и expandtab. Наиболее интересный бит находится в expandtab (:help 'expandtab):

Существует четыре основных способа использования вкладок в Vim:

  • Всегда сохраняйте "tabstop" в 8, устанавливайте "softtabstop" и "shiftwidth" на 4 (или 3 или что вы предпочитаете) и используйте "noexpandtab". Затем Vim будет использовать сочетание вкладок и пробелов, но набирать и будет вести себя как вкладка, отображаемая каждые 4 (или 3) символа.

  • Установите "tabstop" и "shiftwidth" в соответствии с тем, что вы предпочитаете, и используйте "expandtab". Таким образом вы всегда будете вставлять пробелы. Форматирование никогда не будет испорчено при изменении "tabstop" .

  • Установите "tabstop" и "shiftwidth" на все, что вы предпочитаете, и используйте | modeline | для установки этих значений при повторном редактировании файла. Работает только при использовании Vim для редактирования файла.

  • Всегда устанавливайте "tabstop" и "shiftwidth" в одно и то же значение и "noexpandtab". Затем это должно работать (только для начальных отступов) для любого параметра табуляции, который люди используют. Возможно, было бы неплохо иметь вкладки после того, как первый непустой вставлен как пробел, если вы это сделаете. В противном случае совпадающие комментарии будут ошибочными при изменении "tabstop" .

Ответ 2

:set tabstop=4
:set shiftwidth=4
:set expandtab

Это приведет к вставке четырех пробелов вместо символа табуляции. Пространства немного более "стабильны", что означает, что текст с отступом с пробелами будет отображаться в браузере и в любом другом приложении.

Ответ 3

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

:set tabstop=4

Чтобы сделать изменение постоянным, добавьте его в ~/.vimrc или ~/.vim/vimrc:

set tabstop=4

Это затронет все файлы, а не только css. Чтобы влиять только на файлы css:

autocmd Filetype css setlocal tabstop=4

как указано в ответе Michał.

Ответ 4

Некоторые ответы на этой странице являются "одноразовыми" исправлениями описанной проблемы. Это значит, что при следующем открытии документа с помощью vim вернутся настройки предыдущей вкладки.

Если кто-то заинтересован в постоянном изменении настроек вкладки:

Ответ 5

Если вам нужно часто менять размеры, и вы не хотите привязывать его к определенному типу файла, вы можете иметь предопределенные команды в вашем файле .vimrc для быстрого переключения настроек:

nmap <leader>t :set expandtab tabstop=4 shiftwidth=4 softtabstop=4<CR>
nmap <leader>m :set expandtab tabstop=2 shiftwidth=2 softtabstop=2<CR>

Это отображает два разных набора размеров в ключи \t и\m. Вы можете переустановить это на любые клавиши, которые вы хотите.

Ответ 6

Как однострочник в vim:

:set tabstop=4 shiftwidth=4 expandtab

Для постоянной настройки добавьте эти строки в ~/.vimrc:

set tabstop=4
set shiftwidth=4
set expandtab