繁体   English   中英

如何使用撤消树在 emacs 邪恶模式中更改撤消的粒度级别?

[英]How to change granularity level of undo in emacs evil-mode with undo-tree?

这些是一些很棒的选项:emacs-24、evil-mode(在 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 中的撤销模式除了离开插入模式之外还可以跟踪其他事件。 例如,您应该能够长时间保持插入模式,然后撤消任何类型的删除、剪切、粘贴操作。

尝试evil-want-fine-undo

是否分几步撤消操作。 有两种可能的选择: nil ("no") 表示在插入状态期间所做的所有更改,包括更改操作后可能的删除,都在单个撤消步骤中收集。 非零(“是”)表示根据 Emacs 启发式确定撤消步骤,并且不尝试聚合更改。

(setq evil-want-fine-undo t)

这是特定于撤消树的吗? 我不使用它,因此以下内容可能不适用...

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

先选择一个地区,然后输入撤销键,Emacs 只会撤销在该地区所做的更改。

这可能非常有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM