当且仅当区域在Emacs中处于活动状态时,标记是否处于活动状态?

“标记是否处于活动状态”只是意味着与Emacs中的“区域处于活动状态”相同,无论是否启用了瞬态标记模式?因此激活标记与激活区域相同?

我感到很困惑,因为在很多地方似乎可以互换地使用两个短语,而region-active-p的定义似乎采取的立场是,当且仅当启用了瞬态标记模式且标记处于活动状态时,该区域才被认为是活动的.

(defun region-active-p ()
  "Return t if Transient Mark mode is enabled and the mark is active.

Some commands act specially on the region when Transient Mark
mode is enabled.  Usually, such commands should use
`use-region-p' instead of this function, because `use-region-p'
also checks the value of `use-empty-active-region'."
  (and transient-mark-mode mark-active))

是什么关系

>区域突出显示(即区域的背景颜色不同)
>区域活跃
>标记处于活动状态

当启用瞬态标记模式时,以及何时禁用它?

最佳答案
>区域处于活动状态=标记处于活动状态但它不一定突出显示.
>如果启用了活动和瞬态标记模式,则会突出显示该区域.
>如果使用鼠标或使用Shift光标键进行设置,即使瞬态标记模式关闭,也会暂时突出显示该区域.

除非该区域为空,否则您将看不到任何突出显示.

从我的观点来看,“活跃”仅适用于瞬态标记模式.模式关闭时没有任何意义.任何行为取决于该区域是否处于活动状态的函数都会这样做
当t-m-mode启用时.正如Emacs手册(节点持久标记)所说:“何时
瞬态标记模式关闭,标记永远不会停用“

但这不是最近有人说的.原因与“临时瞬态标记模式”有关(参见Elisp手册,节点标记).

(还要记住,如果缓冲区中还没有任何标记,那么那里也没有区域.)

转载注明原文:当且仅当区域在Emacs中处于活动状态时,标记是否处于活动状态? - 代码日志