Emacs:操作后保持区域选择

时间:2009-05-02 20:22:21

标签: emacs

在emacs中,在comment-region之类的操作之后,将自动取消选择所选区域。

有没有办法禁用此行为?

3 个答案:

答案 0 :(得分:10)

如果取消选择该区域,则听起来您必须使用transient-mark-mode。在transient-mark-mode中,当您执行对该区域进行操作的命令时,将取消选择该区域(特别是,标记保留,但它处于非活动状态)。您可以使用C-x C-xexchange-point-and-mark)重新选择区域(重新激活标记)。

如果要完全禁用取消选择,可以关闭transient-mark-mode。这意味着您不会突出显示当前区域,但如果您想设置标记并突出显示该区域,则可以turn on transient mark mode briefly使用C-<SPC> C-<SPC>C-u C-x C-x。< / p>

答案 1 :(得分:0)

幸运的是,键盘宏在更改区域时不会取消选择该区域。因此,您可以编写函数,然后创建一个kbd宏,该宏调用您的函数,然后执行C-x C-x一次,或者,如果您关心点和标记的原样,请执行两次。然后命名您的kbd宏。然后,M-x write-kbd-macro,并在出现提示时,给它提供您想要宏附加到的文件的名称,然后给它提供新宏的名称。如果现在将宏绑定到键,则可以重复按该键而不会丢失该区域。 如果Emacs的'interactive'将'_'作为字符串参数的一部分来保留该区域并突出显示XEmacs的'interactive'的方式,那肯定很好。

答案 2 :(得分:0)

使用变量isUserLoggedIn(){ // remove token if cookie not set if(this.getCookie("loginstatus") != 'loggedin'){ localStorage.removeItem("token"); } let session = localStorage.getItem('token'); if (session == null) { return false; }else{ return session } }

deactivate-mark

在上面的示例中,您可以将(defun acg/with-mark-active (&rest args) "Keep mark active after command. To be used as advice AFTER any function that sets `deactivate-mark' to t." (setq deactivate-mark nil)) (advice-add 'comment-region :after #'acg/with-mark-active) 替换为所需的任何其他功能。