回答:
Vimでは、Ctrl-G u
コマンドで元に戻すことができる変更の範囲を指定する機能が制限されており、元に戻すシーケンスが中断されます。見る
:help i_CTRL-G_u
あなたの場合、解決策は次のように再マッピングすること<C-R>
です。
:inoremap <C-R> <C-G>u<C-R>
次に、入力<C-O>u
すると、入力後に行った変更のみが取り消され<C-R>
ます。見る
:help i_CTRL-O
:help i_CTRL-G_u
。
<C-w>
(左の単語を削除する)または<C-u>
(一度押すとカーソルの前の文字をクリアし、もう一度押すと改行を削除する)を試すことができます。:help i_CTRL-W
およびを参照してください:help i_CTRL-U
。
レジスタから大量に貼り付ける場合、変更を元に戻すのはもちろん高速です。そのためにinsert-normal-modeを使用できます<C-o>
(1つの通常モードコマンドを実行してから挿入モードに戻ります)。
一般に、通常モードに戻ることで編集を小さな断片に分割すると、きめ細かい取り消しの可能性が得られます。
<C-O>u
してから画面に結果が表示されるまでにかなりの遅延があります(約4秒)。