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