【问题标题】:How does Emacs select which minor modes to list in the mode line?Emacs 如何选择要在模式行中列出的次要模式?
【发布时间】:2012-04-08 07:32:48
【问题描述】:

我计划在不久的将来在 Emacs 中自定义模式行,但我不明白在模式行中列出次要模式背后的算法。

在 Emacs 手册的 «1.3 The Mode Line» 部分中它说:«MINOR 是一些启用的“次要模式”的列表»

在 «23.2 次要模式» 部分中它说:«大多数缓冲区本地次要模式在启用时在模式行中说»

但是我列出了 ErgoEmacs 次要模式,它是全局的。有人可以解释这背后的机制,最好指出负责该问题的各种 elisp 来源吗?

【问题讨论】:

    标签: emacs elisp modeline


    【解决方案1】:

    您可以通过执行以下操作来更改特定次要模式的显示内容

    (setcar (cdr (assq 'yas/minor-mode minor-mode-alist)) " ¥")
    

    这将为yasnippet mode 显示“¥”。我经常这样做,尤其是对于我经常使用的模式,因为它大大缩短了我的模式线。

    【讨论】:

      【解决方案2】:

      这是为每个单独的模式指定的,由模式自己的定义。

      如果您继续阅读第 23.3.3 节 - 定义次要模式:

      字符串 LIGHTER 表示启用模式时在模式行中显示的内容;如果为 `nil',则模式不显示在模式行中。

      见:

      M-: (info "(elisp) Defining Minor Modes") RET

      C-hf define-minor-mode RET

      另请参阅http://www.emacswiki.org/emacs/DelightedModes,它有助于轻松自定义主要和次要模式的模式行显示。

      【讨论】:

        猜你喜欢
        • 2010-12-03
        • 1970-01-01
        • 2017-06-15
        • 2015-01-08
        • 1970-01-01
        • 2011-05-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多