Evilのデフォルトのアンドゥ動作は、挿入モードに入ってからそれを1つの編集操作として終了するまでの間に行われることをすべて考慮しているため、粒度が粗すぎます。1回の挿入中にテキストの段落全体を入力してから元に戻すを実行すると、段落全体が削除されます。それとは対照的に、Vimは、テキストを入力する以外の方法で挿入モードでカーソルを移動するたびに、新しい取り消しユニットを開始します。
Evilには、よりきめ細かい取り消し履歴を取得するために使用できるカスタマイズ変数があります。
(setq evil-want-fine-undo t)
この設定では、Vimと同様に、カーソルが挿入モードで移動すると、Evilは新しい取り消しユニットを開始します。ただし、この設定は、置換操作の処理方法も混乱させます。を使用して単語を置換する場合cw
、元の単語を復元するために2回元に戻す必要があります。これはVimと矛盾しており、replaceはアトミックでなければならないため、あまり意味がありません。
質問:Vimの取り消し動作を取得するために、どのように悪と取り消しツリーを構成できますか?