В чем разница между autoindent и smartindent в vimrc?

36

Я прочитал запись вики на отступе исходного кода vim

Я до сих пор не могу понять разницу между autoindentиsmartindent

Кажется, они делают то же самое, копируя уровень отступа на следующую строку при нажатии enter.

Аарон Шен
источник
6
Вики очень близка к бесполезной. Читайте :help autoindentи :help smartindent.
Ромен
вики на самом деле имеет довольно приличное объяснение ваших вариантов: vim.wikia.com/wiki/...
ian5v

Ответы:

24

autoindentпо сути, говорит vim применять отступ текущей строки к следующей (созданной нажатием enterв режиме вставки или с помощью Oили oв обычном режиме.

smartindentреагирует на синтаксис / стиль кода, который вы редактируете (особенно для C). При наличии его на вас также должен быть autoindent на .

:help autoindentтакже упоминает две альтернативные настройки: cindentи indentexpr, обе из которых заставляют vim игнорировать значение smartindent.

guntbert
источник