Vim: Умный отступ при вводе режима вставки в пустую строку?

Когда я открываю новую строку (через 'o'), мой курсор переходит к правильно позиции с отступом по следующей строке. С другой стороны, ввод режима вставки, в то время как мой курсор находится на пустой строке, не перемещает мой курсор в правильно местоположение с отступом.

Как я заставляю энергию правильно расположить мой курсор с отступом при вводе режима вставки (через i) на пустой строке?

39
задан Dane O'Connor 9 June 2010 в 05:58
поделиться

2 ответа

cc заменит содержимое текущей строки и войдет в режим вставки с правильным отступом - поэтому пустая строка будет делать именно то, что вам нужно.

Я считаю, что поведение и , которое вы описываете, является правильным, потому что есть много случаев, когда вы хотите, чтобы вставлялся в это конкретное место в пустой строке, а не переходил к везде, где vim угадает, что вы хотите вставить.

74
ответ дан 27 November 2019 в 02:18
поделиться

На самом деле это было не так плохо, как я думал. Один из способов включить это - добавить следующее в ваш ~ / .vimrc

"smart indent when entering insert mode with i on empty lines
function! IndentWithI()
    if len(getline('.')) == 0
        return "\"_ccO"
    else
        return "i"
    endif
endfunction
nnoremap <expr> i IndentWithI()

. Он просто проверяет наличие пустой строки, когда вы нажимаете 'i' из режима вставки. Если вы действительно находитесь на пустой строке, она удалит ее и откроет новую, эффективно используя рабочее поведение «открытой строки».

Примечание: "_ перед копией гарантирует, что ваш реестр не будет удален

15
ответ дан 27 November 2019 в 02:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: