所以我把文本放在 vim 中的特定区域......
我使用 REPLACE 模式,这样在输入时就不会弄乱“矩形”的“远边”。如果在此模式下按下 Enter 键时,我的光标停留在下一行,而不会影响该行的其余部分,那就太好了。
但不幸的是,当我按下回车键时,会插入一个新行,最后我得到
这会弄乱“矩形”——有人知道如何获得我想要的行为吗?
答案1
经过一番修改,我想出了以下方法。这有点像是临时解决办法,但似乎可行:
augroup ReplaceReturn
autocmd!
autocmd InsertEnter * if v:insertmode ==? 'r' | call s:RedefineReturn() | endif
augroup END
function! s:RedefineReturn()
inoremap <cr> <down><c-o>0
inoremap <silent> <esc> <esc>:call <SID>UndefineReturn()<CR>
endfunction
function! s:UndefineReturn()
if maparg('<cr>', 'i') != ''
iunmap <cr>
iunmap <esc>
endif
endfunction