Emacs:操作后保持区域处于选中状态

Emacs:操作后保持区域处于选中状态,emacs,Emacs,在emacs中,在执行诸如注释区域之类的操作后,所选区域将自动取消选择 有没有办法禁用此行为?如果取消选择该区域,听起来您必须使用。在瞬态标记模式下,当您执行对该区域进行操作的命令时,将取消选择该区域(特别是,标记保留,但处于非活动状态)。您可以使用C-x C-x(exchange point and mark)重新选择区域(重新激活标记) 如果要完全禁用取消选择,可以关闭瞬态标记模式。这意味着您不会得到当前区域的任何高亮显示,但是如果您想设置标记并高亮显示该区域,您可以使用C-C-或C-u C

在emacs中,在执行诸如
注释区域
之类的操作后,所选区域将自动取消选择


有没有办法禁用此行为?

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


如果要完全禁用取消选择,可以关闭
瞬态标记模式
。这意味着您不会得到当前区域的任何高亮显示,但是如果您想设置标记并高亮显示该区域,您可以使用
C-C-
C-u C-x C-x

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

使用变量
停用标记

(在标记处于活动状态(&rest参数)的情况下卸载acg/
“命令后保持标记处于活动状态。在任何
将“停用标记”设置为t的函数。“
(setq停用标记零)
(建议添加“注释区域:在#”acg/之后,标记处于活动状态)

在上面的例子中,您可以用您想要的任何其他函数替换
注释区域。

hmm,我似乎无法关闭它-我现在在.emacs和M-x瞬态标记模式中有(自定义设置变量(瞬态标记模式nil)):瞬态标记模式禁用,但行为(高亮显示和立即取消选择)没有改变这很奇怪。您的.emacs中是否有启用瞬态标记模式的其他内容?或者你正在使用的某个主要模式中有什么东西会强制瞬变标记模式打开吗?grep-r“transient”~/.emacs.d/没有显示任何内容,~/.emacsslink向我指出了答案-瞬变标记模式关闭后,行为似乎没有改变(仍然是区域的“瞬变”突出显示),但是这个区域似乎是永久的。嗯,很有趣。在我的Emacs版本中,它不是这样工作的;我运行的是GNU Emacs 22.3,也许您运行的是另一个版本?不管怎么说,很高兴你能正常工作。你确定该区域已取消选择,还是只是失去了视觉高光?(您可以在
注释区域
之后立即运行
取消注释区域
)哇,您说得对,谢谢!我会接受布莱恩的回答。4年后,我完全忘记了这个地区仍然是无形的选择。我要找一个界面更好的文本编辑器。