Варианты отступов Vim
Vim в основном использует 3 параметра для размера отступа:
tabstop
, ts
: когда Vim встречает табуляцию в открываемом вами файле, он отображает вкладку в виде пробелов {ts} (см. справку по tabstop или введите :help tabstop
Vim).
softtabstop
, sts
: когда вы редактируете файл и нажимаете клавишу табуляции, Vim использует этот параметр для определения ширины вставленной табуляции (см. справку softtabstop или введите :help softtabstop
Vim).
shiftwidth
, sw
: Количество пробелов Вим использует при отступов, либо с помощью автоотступа материал или обычный >>
, <<
команды. Как заметил Гептит, это то, что вы искали в данном конкретном случае. И последние версии Vim действительно позволяют вам не определять эту опцию, shiftwidth
а затем принимают значение, определенное как tabstop
. Довольно удобно (см. Справку по shiftwidth ).
пример
Так, например, если вы используете следующие настройки:
set sts=4
set ts=2
set sw=8
Это приведет к следующему поведению:
- Вставка таблицы в файл приведет к появлению отступа в 4 пробела.
- Так как для вас
tabstop
установлено значение 2, это фактически эквивалентно двум таблицам. Это довольно легко проверить, просто используйте параметры list
и listchars
для отображения таблиц.
- Если вы сделаете отступ с использованием строки
>>
, отступ будет иметь ширину 8 пробелов (следовательно, эквивалент 4 таблиц, основанных на tabstop
значении, как указано выше).
Рекомендации по отступам Vim (из документации Vim)
Из tabstop
справки ( :help tabstop
в Vim):
There are four main ways to use tabs in Vim:
1. Always keep 'tabstop' at 8, set 'softtabstop' and 'shiftwidth' to 4
(or 3 or whatever you prefer) and use 'noexpandtab'. Then Vim
will use a mix of tabs and spaces, but typing <Tab> and <BS> will
behave like a tab appears every 4 (or 3) characters.
2. Set 'tabstop' and 'shiftwidth' to whatever you prefer and use
'expandtab'. This way you will always insert spaces. The
formatting will never be messed up when 'tabstop' is changed.
3. Set 'tabstop' and 'shiftwidth' to whatever you prefer and use a
|modeline| to set these values when editing the file again. Only
works when using Vim to edit the file.
4. Always set 'tabstop' and 'shiftwidth' to the same value, and
'noexpandtab'. This should then work (for initial indents only)
for any tabstop setting that people use. It might be nice to have
tabs after the first non-blank inserted as spaces if you do this
though. Otherwise aligned comments will be wrong when 'tabstop' is
changed.
Лично я использую в основном второе решение с таблицами шириной в 2 пробела.
set ts=2
set sts=2
set et "expand tabs to spaces
ts
2, 4 или 8