我只是想知道是否有那些将同一编辑命令的多次调用合并为1个撤消历史记录的elisp包/片段。例如,如果我按住Ck杀死10行,有没有办法告诉Emacs将它们全部折叠为1撤消历史记录,如果我撤消,而不是必须撤消10次,我可以撤消一次?
(没有回答告诉我使用C-u 10 C-k或类似的东西将被接受)
提前致谢!
答案 0 :(得分:1)
当您重复执行 C-k 时,您必须advice kill-append
:
(defadvice kill-append (after merge-undo activate)
(let ((prev buffer-undo-list)
(next (cdr buffer-undo-list)))
;; find the next undo boundary
(while (car next)
(pop next)
(pop prev))
;; remove this undo boundary
(setcdr prev (cdr next))))
要禁用此功能,请执行 M-x ad-unvvise RET kill-append RET 。