Что ж, после изучения некоторых опций, в том числе использования ':set cindent
' вместо ':set smartindent
', я вернулся к использованию только ':set autoindent
'. Вероятно, есть способы заставить этот материал работать именно так, как я хочу, но он достаточно грязный и достаточно сложный, чтобы меня не беспокоили. Я отлично работал с autoindent
в течение предыдущих 20 с лишним лет, и выгоды от дополнительных наворотов, предоставляемых smartindent
, перевешиваются тем, что я считаю его неправильным поведением.
Спасибо, Хуан, за вашу помощь. Верьте или нет, это помогло - довольно много.
Я также обнаружил пару других аккуратных команд, продолжая это:
>i}
>a}
Они сдвигают вправо блок кода, в котором вы находитесь. Версия 'i
' делает отступ в теле, а не закрывающие скобки (мой предпочтительный стиль), а версия 'a
' делает отступ в закрывающих скобках (( версия, которая требуется на работе).
Также вы можете применять квалификаторы к '%
' в командах, выполняемых в оболочке:
:make %:r.o
Это запустит make в корневом каталоге текущего имени файла (это %:r
), а затем .o
. Или, другими словами, если я редактирую somefile.c
, это выполняет make somefile.o
.