为什么这个Emacs Lisp片段打破了列表颜色显示?

时间:2009-04-02 18:24:50

标签: emacs elisp

我喜欢Emacs使用尾部空白面来突出显示制表符,我将其设置为背景颜色的稍微灰色版本。这样,我认为不需要的所有空格(制表符和尾随空格)都会略带灰色背景。

这是我使用的代码:

(add-hook 'font-lock-mode-hook
  '(lambda ()
     (font-lock-add-keywords
       nil
        '(("\t" 0 'trailing-whitespace prepend))
     )
   )
)

然而,它似乎打破了列表颜色显示:此功能仍然列出所有颜色,但它们是单色的。我没有得到它应该提供的令人眼花缭乱的色彩。

为什么会这样?可以修复吗?

2 个答案:

答案 0 :(得分:2)

不确定错误原因。维基上有一种模式可以显示效果很好的标签(show-wspace.el)。

(require 'show-wspace)
(show-ws-toggle-show-tabs) ; default is no tabs shown, turn it on
;; the face used is 'show-ws-tab, which you can customize at will    

答案 1 :(得分:0)

你可以包装你的函数,这样它就不会在*中开始/结束的缓冲区中执行空格。无论如何,您可能不希望在这些类型的缓冲区中使用它:

(add-hook ...
  (unless (string-match "\\*.+\\*" (buffer-name))
    (font-lock-add-keywords ...)))