首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Emacs:操作后保持区域处于选中状态

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

Stack Overflow用户
提问于 2009-05-02 20:22:21
回答 3查看 2K关注 0票数 17

在emacs中,在执行comment-region等操作后,会自动取消选中的区域。

有什么方法可以禁用这种行为吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-05-02 20:57:43

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

如果要完全禁用取消选择,可以禁用transient-mark-mode。这意味着你不会得到当前区域的任何高亮显示,但如果你想设置标记并高亮显示该区域,你可以使用C-<SPC> C-<SPC>C-u C-x C-x进行turn on transient mark mode briefly

票数 9
EN

Stack Overflow用户

发布于 2020-05-31 06:51:56

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

票数 0
EN

Stack Overflow用户

发布于 2020-10-06 08:01:04

使用变量deactivate-mark

代码语言:javascript
复制
(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)

在上面的示例中,您可以使用所需的任何其他函数替换comment-region

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/815540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档