Emacs Evil模式下如何一次性撤销evil-visual-block的全部修改?
Spacemacs 下 Evil 块编辑单次全量撤销方案
零配置临时操作
不需要修改现有配置,两种方式都可以单次撤销整块编辑的全部改动:
- 刚完成块编辑、未执行其他操作时,直接按
C-/(Windows/Linux)或Cmd-/(Mac),该绑定默认将同一次块插入的所有改动归为同一撤销组,一次按键即可完成全量回退,不会出现逐字符撤销的问题。 - 如果已经执行过其他编辑操作,按
C-x u唤出undo-tree可视化面板,选中块编辑操作前的快照节点回车,即可直接回到编辑前状态,无需手动选中块区域删除。
注意:默认状态下小写
u逐字符撤销块编辑的原因,是Evil默认将块插入时每行的输入拆分为独立的撤销记录,并非功能故障。
永久配置方案
打开Spacemacs用户配置文件(快捷键SPC f e d),在dotspacemacs/user-config代码段中添加如下配置:
(setq evil-visual-block-insert-as-single-undo t)
保存后按SPC f e R重载配置即可生效。后续所有visual-block模式下的块插入、块追加操作(大写I/大写A触发的块编辑),都会将整次块修改合并为单个撤销条目,直接按一次小写u就能全量撤销整块改动,和普通编辑的撤销逻辑完全一致,不需要额外记忆特殊快捷键。
内容的提问来源于stack exchange,提问作者fegax
相关产品推荐
相关产品推荐

