これらはいくつかの素晴らしいオプションです:emacs-24、evil-mode(emacsでvimバインディングを使用)、およびundo-tree。
ただし、編集モード(挿入モード)の場合、エスケープを押して挿入モードを終了する前に、挿入や削除などの番号をジャンプすることがあります。
「元に戻す」は、挿入全体(削除を含む)を1つの編集として受け取ります。たとえば、誤って削除した段落は、削除全体を元に戻さないと元に戻せません。
これを修正する方法はありますか?
関連するリンクは次のとおりです。
- Emacsが元に戻す作業単位を決定する方法
- http://vim.wikia.com/wiki/Using_undo_branches
- http://vim.wikia.com/wiki/Modified_undo_behavior
- このヒントはおそらくvim側からの最良の説明があります。
特定のvimコマンドを元に戻すことができるように変換するvimマッピングは次のとおりです。
inoremap <c-u> <c-g>u<c-u>
inoremap <c-w> <c-g>u<c-w>
inoremap <End> <C-g>u<End>
inoremap <BS> <c-g>u<BS>
inoremap <CR> <c-g>u<CR>
inoremap <del> <c-g>u<del>
必要なのは、emacsの邪悪なundo-tree内のundoモードで、挿入モードを終了するだけでなく、追加のイベントを追跡することです。たとえば、挿入モードを長時間維持してから、あらゆる種類の削除、切り取り、貼り付けを元に戻すことができるはずです。