Emacs 26 flymake:自定义模式行格式

时间:2018-12-19 16:42:05

标签: emacs flymake defadvice

我正在考虑在Emacs 26重写后从flycheck切换回flymake。我对flymake感到困扰的一件事是,它占用了模式行上的空间。它具有字符串Flymake和结果。看起来很愚蠢,但这只是一个80字符框架上模式行的10%,仅是一个名字!我想在模式行中看到很多重要的信息,所以我尝试删除对我无用的内容-我知道在缓冲区中启用了哪些次要模式等,因为我已经配置了它们!就我个人而言,我宁愿根本不看到名称,仅看到结果,或者最多看到FFM

我可以使用diminish完全摆脱模式行信息,但我当然不希望这样:我希望能够看到缓冲区的状态。

我看过flymake.elflymake--mode-line-format defun,看来这个字符串不是可配置的,也不是很容易更改的。

有人对此有任何想法吗?

1 个答案:

答案 0 :(得分:1)

您需要重新定义flymake--mode-line-format函数。它可能应该更具可定制性,但事实并非如此。可能最不麻烦的方法是在该函数上定义:filter-return advice来转换输出。

(defun flymake--transform-mode-line-format (ret)
  "Change the output of `flymake--mode-line-format'."
  (setf (seq-elt (car ret) 1) " FM")
  ret)
(advice-add #'flymake--mode-line-format
            :filter-return #'flymake--transform-mode-line-format)