24

これらはいくつかの素晴らしいオプションです:emacs-24、evil-mode(emacsでvimバインディングを使用)、およびundo-tree。

ただし、編集モード(挿入モード)の場合、エスケープを押して挿入モードを終了する前に、挿入や削除などの番号をジャンプすることがあります。

「元に戻す」は、挿入全体(削除を含む)を1つの編集として受け取ります。たとえば、誤って削除した段落は、削除全体を元に戻さないと元に戻せません。

これを修正する方法はありますか?

関連するリンクは次のとおりです。

特定の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モードで、挿入モードを終了するだけでなく、追加のイベントを追跡することです。たとえば、挿入モードを長時間維持してから、あらゆる種類の削除、切り取り、貼り付けを元に戻すことができるはずです。

4

2 に答える 2

20

evil-want-fine-undoを試してください:

アクションがいくつかのステップで取り消されるかどうか。考えられる選択肢は2つあります。nil( "no")は、変更操作後の削除の可能性を含め、挿入状態中に行われたすべての変更が1つの元に戻すステップで収集されることを意味します。非nil( "yes")は、取り消しステップがEmacsヒューリスティックに従って決定され、変更を集約する試みが行われないことを意味します。

(setq evil-want-fine-undo t)
于 2012-07-25T19:15:37.320 に答える
1

これはツリーを元に戻すために固有ですか?私は使っていないので、以下は当てはまらないかもしれません...

元に戻すメカニズムが単一のユニットと見なす編集の量を変更できるかどうかはわかりませんが、実行できることは次のとおりです。

最初にリージョンを選択してから元に戻すキーを入力すると、Emacsはそのリージョンで行われた変更のみを元に戻します。

これは非常に便利です。

于 2012-05-06T22:01:25.167 に答える