这些是一些很棒的选项:emacs-24、evil-mode(在 emacs 中使用 vim 绑定)和 undo-tree。
但是,当我处于编辑模式(插入模式)时,我有时会跳来跳去进行数字插入、删除等,然后再点击转义并离开插入模式。
“撤消”将整个插入(包括删除)作为一次编辑。例如,如果不撤消整个删除,我就无法撤消我不小心删除的段落!
有没有什么办法解决这一问题?
以下是一些相关链接:
- 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 evil undo-tree 内部的撤消模式来跟踪除了离开插入模式之外的其他事件。例如,您应该能够长时间处于插入模式,然后撤消任何类型的删除、剪切、粘贴。