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


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

#selector {
        property: value;
}

(8-космической вкладки)

как я могу настроить Vim, чтобы сделать это так:

#selector {
    property: value;
}

(4-пространство вкладки)

5 78

5 ответов:

расширяя ответ зоула:

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

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" на все, что вы предпочитаете, и используйте "expandtab". Таким образом, вы всегда будете вставлять пробелы. Форматирование никогда не будет перепутано при изменении 'tabstop'.

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

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

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

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

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

:set tabstop=4

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

set tabstop=4

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

autocmd Filetype css setlocal tabstop=4

как говорится в ответ Михала.

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

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

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