2014-06-09 14 views
0

我只是想知道是否有elisp包/ snippet那裏合併多個調用相同的編輯命令1撤消歷史記錄。例如,如果我按住C-k殺死10行,是否有辦法告訴Emacs將它們全部摺疊爲1撤消歷史記錄,如果撤消了,而不是必須撤消10次,我可以撤消一次?如何在Emacs中將多條殺線細分爲一個撤消歷史記錄?

提前(沒有回答,告訴我用C-U 10 C-K或類似的東西將被接受)

謝謝!

回答

1

你必須advicekill-append被稱爲當你做C-K反覆:

(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廣告的Unadvise RET殺-RET追加

相關問題