Vim: линия отступа (пустая) и вставка

Скажем, у меня есть текущий текст в буфере, где _ отмечает курсор

int main(int argc, char **argv) {
    printf("Hello, world!\n");

_
}

У меня есть indentexpr on (хотя, вероятно, будет работать и решение с cindent или autoindent).

Как начать вставку, чтобы мой курсор помещался в соответствующий столбец, чтобы следовать правилам отступа, т.е.:

int main(int argc, char **argv) {
    printf("Hello, world!\n");

    _
}

В настоящее время я часто использую ddO (или ddO в конце буфера), но, похоже, должен быть лучший способ. Использование == или даже >> или v> не работает, потому что строка пуста.

Ответы

Ответ 1

Попробуйте вернуться в обычный режим и введите S

Ответ 2

Если я на пустой строке, но с неправильной точкой вставки, я обычно использую CTRL-f (в режиме вставки) для отступа в нужное место.

Это полезно, когда я нажал ESC, чтобы выйти из режима вставки, а затем потерял правильный отступ. Нажатие i, за которым следует CTRL-f делает трюк.