Когда я открываю новую строку (через 'o'), мой курсор переходит к правильно позиции с отступом по следующей строке. С другой стороны, ввод режима вставки, в то время как мой курсор находится на пустой строке, не перемещает мой курсор в правильно местоположение с отступом.
Как я заставляю энергию правильно расположить мой курсор с отступом при вводе режима вставки (через i) на пустой строке?
cc
заменит содержимое текущей строки и войдет в режим вставки с правильным отступом - поэтому пустая строка будет делать именно то, что вам нужно.
Я считаю, что поведение и
, которое вы описываете, является правильным, потому что есть много случаев, когда вы хотите, чтобы вставлялся в это конкретное место в пустой строке, а не переходил к везде, где vim угадает, что вы хотите вставить.
На самом деле это было не так плохо, как я думал. Один из способов включить это - добавить следующее в ваш ~ / .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' из режима вставки. Если вы действительно находитесь на пустой строке, она удалит ее и откроет новую, эффективно используя рабочее поведение «открытой строки».
Примечание: "_ перед копией гарантирует, что ваш реестр не будет удален