Почему вы ожидаете, что редактор всегда выберет правильный отступ? Конфигурируя определенный параметр отступа (например, хороший и универсальный :set smartindent
), вы получаете то, что работает большую часть времени. В других случаях вы всегда можете сделать отступ вручную (с помощью <Tab>
, при условии, что вы правильно сделали :set tabstop=... expandtab
и т. Д.) Или изменить отступ после факта с помощью >>
и <<
.
Если у вас действительно есть определенный синтаксис, в котором правила отступа довольно просты и детерминированы (и ни один из параметров отступа по умолчанию не работает постоянно), вы должны написать собственный indentexpr
(ср. :help indent-expression
).
Поскольку ваш пример касается форматирования текста, это не относится к вам, и вам действительно лучше с 'smartindent'
ручными исправлениями.