Как изменить размер вкладки в Vim? - PullRequest
117 голосов
/ 13 января 2010

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

#selector {
        property: value;
}

(8 пробелов)

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

#selector {
    property: value;
}

(4 пробела)

Ответы [ 5 ]

159 голосов
/ 13 января 2010
:set tabstop=4
:set shiftwidth=4
:set expandtab

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

91 голосов
/ 12 октября 2016

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

:set tabstop=4

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

* +1007 *

Это повлияет на все файлы, а не только на CSS. Влиять только на CSS-файлы:

autocmd Filetype css setlocal tabstop=4

как указано в ответ Михала .

78 голосов
/ 13 января 2010

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

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

autocmd Filetype css setlocal tabstop=4

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

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

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

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

  2. Установите для «tabstop» и «shiftwidth» любое значениеВы предпочитаете и используете «расширение».Таким образом, вы всегда будете вставлять пробелы.Форматирование никогда не будет испорчено при изменении «tabstop».

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

  4. Всегда устанавливайте для «tabstop» и «shiftwidth» одинаковое значение и «noexpandtab».Это должно сработать (только для начальных отступов) для любой настройки табуляции, которую используют люди.Возможно, было бы неплохо, чтобы после первой непустой вставки были вставлены пробелы, если вы сделаете это.В противном случае выровненные комментарии будут неправильными при изменении 'tabstop'.

30 голосов
/ 29 июля 2017

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

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

6 голосов
/ 09 декабря 2014

Если вам нужно часто менять размеры и вы не хотите связывать это с конкретным типом файла, вы можете иметь предопределенные команды в вашем файле .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. Вы можете привязать это к любым клавишам, которые вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...