如何回忆在emacs中选择的最后一个区域?

ben*_*hsu 4 emacs

当我在emacs中点击"撤消"时它撤消我的编辑,但是我丢失了所选区域,我必须返回并重新选择它.有没有办法绑定撤消,所以它将选择最后选择的区域

我能想到的最好的是:

(global-set-key (kbd "\C-o")
                (lambda()
                  (interactive)
                  (progn (undo)
                          (exchange-point-and-mark)
                          )))
Run Code Online (Sandbox Code Playgroud)

ali*_*oar 28

你不会失去这个地区.该地区仍处于猛烈的环境中.

如果你想重新选择它,你可以简单地调用exchange-point-and-mark,默认绑定到C-xC-x.


Iva*_*rus 1

您始终可以使用建议来利用您所拥有的并将其包装起来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))))
Run Code Online (Sandbox Code Playgroud)

  • 您应该在此建议中插入一个全局测试变量,如“undo-remark-region-p”(或钩子调用),因为该建议在全局范围内扩展了该函数,并且在某些模式下他可能不希望这种行为等。我认为,最好让这种行为成为可选的。 (2认同)