症状
o
,O
などでインサートモードに入るとインデントが調整された位置にカーソルが移動するのに,空行でi
を押してもインデントが調整されない
解法
" smart indent when entering insert mode with i on empty lines
function! IndentWithI()
if len(getline('.')) == 0
return "cc"
else
return "i"
endif
endfunction
nnoremap <expr> i IndentWithI()
空行の場合はcc
で一行上のインデントを踏まえた位置にカーソルを移動.空行でなければ普通のi
の動作
参考
http://stackoverflow.com/questions/3003393/vim-smart-indent-when-entering-insert-mode-on-blank-line
上サイトのanserを合わせてシンプルな解法になるようにしています.