如何使用undo-tree更改emacs evil-mode中的undo的粒度级别?

时间:2012-05-06 21:43:22

标签: vim emacs emacs24 evil-mode

这些是一些很棒的选项:emacs-24,邪恶模式(在emacs中使用vim绑定)和undo-tree。

但是,当我处于编辑模式(插入模式)时,我有时会在点击转义和离开插入模式之前跳转一下数字插入,删除等。

“撤消”将整个插入(包括删除)作为一个编辑。例如,我无法撤消我在不撤消整个删除的情况下意外删除的段落!

有什么方法可以解决这个问题吗?

以下是一些相关链接:

以下是转换某些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内部的撤消模式除了离开插入模式之外还要跟踪其他事件。例如,您应该能够长时间保持插入模式,然后撤消任何类型的删除,剪切,粘贴。

2 个答案:

答案 0 :(得分:15)

你有没有尝试过邪恶想要的好消息?

(setq evil-want-fine-undo t)

http://gitorious.org/evil/evil/blobs/master/evil-vars.el#line195

答案 1 :(得分:1)

这是撤消树特有的吗?我不使用它,所以以下内容可能不适用......

我不确定您是否可以修改撤销机制认为是单个单元的编辑量,但您可以做的是:

首先选择一个区域,然后键入撤消键,Emacs将仅撤消在该区域中所做的更改。

这非常有用。