0

我在 Mac OS X 上使用 Emacs 24.1.1 时遇到问题。我正在编辑 Jade 和 CoffeeScript 文件,因此我为这些文件类型打开了空白模式。

我看到的是长度超过 70 个字符的行用空白行字体突出显示,无论空白行列的设置如何。

问题截图

在这张照片中,很明显我已经自定义了 whitespace-line-column 来跟踪 fill-column,并且我已经将 fill-column 设置为 120,但是更短的行被突出显示。

我浏览了 Jade 模式的代码,并没有看到任何可以解释该行为的内容,但我对 Emacs Lisp 的了解仅略知一二。

提前感谢您的任何指点!

4

1 回答 1

5

您必须在激活whitespace-line-column 之前whitespace-mode进行设置。也就是说,如果你想改变它的值,它不会生效,除非你whitespace-mode关闭并重新打开。M-x customize具有讽刺意味的是,在您激活模式一次之前,该变量不可用:-(

但是,您可以通过在 .emacs 文件中添加以下行来自定义此变量的全局值:

(setq whitespace-line-column 120)

由于您的 .emacs 是在您启动 Emacs 时进行评估的,因此该设置将在您第一次调用 whitespace-mode 之前生效,因此应该执行您想要的操作。如果您不想全局设置该值,而仅针对 Jade 文件,请将以下内容放入您的 .emacs 文件中:

(set (make-local-variable 'whitespace-line-column) 80)
(add-hook 'after-change-major-mode-hook
          '(lambda () (when (eq major-mode 'jade-mode)
                        (setq whitespace-line-column 120))))

如果您根本不想特别突出显示长行,您可能需要考虑第三种选择。您可以自定义变量 whitespace-style (通过键入M-x customize-variable ENTER whitespace-style ENTER)并在值列表中删除条目:

  • 线条
  • 线尾

(如果有的话)。这应该在全局上关闭长行的突出显示,而与 的值无关whitespace-line-column(同样,仅在您取消并重新激活空白模式之后)。

于 2012-07-12T02:54:45.887 回答