2012-07-13 45 views
4

當我在emacs中點擊「撤消」時,它撤銷了我的編輯,但是我失去了選定的區域,我必須返回並重新選擇它。有沒有撤消綁定所以它會選擇最後選定區域我該如何回憶在emacs中選擇的最後一個區域?

辦法,我可以拿出最好的是:

(global-set-key (kbd "\C-o") 
       (lambda() 
        (interactive) 
        (progn (undo) 
          (exchange-point-and-mark) 
         ))) 

回答

1

您可以隨時使用advice把你所擁有的和周圍undo包裝它:

(defadvice undo (around reactivate-mark (&optional arg) activate) 
    (let ((ma mark-active)) 
    ad-do-it 
    ;; Reactiveate mark if it was active 
    (when ma 
     (exchange-point-and-mark)))) 
+2

你應該插入一個全球測試變量,如「撤消-句話區域-P」(或鉤調用)在這個建議裏面,因爲這個建議在全局範圍內擴展了這個功能,並且在某些模式下他可能不想要這樣的行爲,等等。我相信這樣做更好。 – alinsoar 2012-07-15 19:53:53

22

你不會失去的區域。該地區仍然在猛拉環。

如果你想重新選擇,你可以簡單地調用exchange-point-and-mark,其默認綁定到C-XC-X

相關問題