这里有一些不错的选择: emacs-24、evil-mode(使用vim绑定在emacs中)、和undo-tree。
然而,在编辑模式下(插入模式),我有时会进行多个插入、删除等操作,才离开插入模式。
"撤销"将整个插入(包括删除)作为一个编辑行为。例如,我无法仅撤销意外删除的段落而不撤消整个删除!
有没有办法解决这个问题?
以下是一些相关链接:
- Emacs如何确定要撤销的工作单元
- 使用撤销分支
- 修改后的撤销行为
- 这个技巧 可能是来自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时,撤销模式能够跟踪除了离开插入模式以外的其他事件。例如,您应该能够长时间保持插入模式,然后撤销任何删除、剪切、粘贴等操作。