【发布时间】:2012-05-15 12:23:58
【问题描述】:
这些是一些很棒的选项:emacs-24、evil-mode(在 emacs 中使用 vim 绑定)和 undo-tree。
但是,当我处于编辑模式(插入模式)时,我有时会跳来跳去进行数字插入、删除等操作,然后再点击转义并离开插入模式。
“撤消”将整个插入(包括删除)作为一次编辑。例如,如果不撤消整个删除,我就无法撤消我意外删除的段落!
有没有办法解决这个问题?
以下是一些相关链接:
- How Emacs determines a unit of work to undo
- http://vim.wikia.com/wiki/Using_undo_branches
- http://vim.wikia.com/wiki/Modified_undo_behavior
- This tip 可能从 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 中的 undo 模式来跟踪除了离开插入模式之外的其他事件。例如,您应该能够长时间处于插入模式,然后撤消任何类型的删除、剪切、粘贴。
【问题讨论】:
-
基于stackoverflow.com/questions/6590889/…,evil中的额外命令需要调用undo-boundary。
-
只是因为还没有说过:“您应该像在热煤床上奔跑一样对待插入模式;尽快离开那里”。
标签: vim emacs emacs24 evil-mode