Emacs - 如何巩固:轻微模式的打火机

时间:2014-05-29 23:07:45

标签: emacs elisp

当存在某种活动次要模式组合时,是否可以在模式行上合并:lighters?如果是的话,那又怎么样?

示例:

  • 次要模式第一个有{更轻的" -"

  • 次要模式二是:" +"

如果缓冲区中的两个次要模式都处于活动状态,则合并打火机:" ±"

1 个答案:

答案 0 :(得分:6)

您可以通过修改minor-mode-alist

动态更改任何次要模式的较轻值
(setcar (cdr (assq 'MODE minor-mode-alist)) VALUE)

当您的任一模式被激活或停用时,请检查另一个模式的状态,并相应地设置较轻的文本。如果两者都处于活动状态,您可以将其中一个设置为空字符串,将另一个设置为空字符串。更轻。

或者,更好的是,利用任何模式行构造都有效的事实,并使其自动化。使用delight.el作为上述包装器,假设两种模式都由mylibrary.el定义,您可以说:

(delight '((mode+ (mode- " ±" " +") "mylibrary")
           (mode- (mode+ "" " -") "mylibrary")))

这并不完美 - 如果你想让相关的弹出式菜单也结合两种模式的细节,那么还有更多工作要做;但我建议你不要担心,如果你不需要。模式行的外观是这里的低调成果。