Варіанти відступу Vim
Vim в основному використовує 3 налаштування щодо розміру відступу:
tabstop, ts:: коли Vim стикається з таблицею у файлі, який ви відкриваєте, він відображає вкладку у вигляді {ts} пробілів (див. довідку про стовпчик або введіть :help tabstopVim).
softtabstop, sts:: Ви редагуєте файл і натискаєте клавішу вкладки, Vim використовує це налаштування, щоб визначити ширину вставленої табуляції (див. довідку програмного перемикання або введіть :help softtabstopVim).
shiftwidth, sw: Кількість пробілів Вім використовує при відступів, або з допомогою автовідступ матеріал або звичайний >>, <<команди. Як зауважила Гептит, саме це ви шукали в даному конкретному випадку. І останні версії Vim дійсно дозволяють вам не визначати цей параметр, shiftwidthі тоді приймете значення, визначене tabstop. Досить зручно (див. Довідку про ширину зсуву ).
Приклад
Наприклад, якщо ви користуєтесь такими налаштуваннями:
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