Emacs Whitespace Mode忽略whitespace-line-column和fill-column

时间:2012-07-11 18:03:53

标签: emacs whitespace emacs24

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

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

screen shot of problem

在这张照片中,很明显我已经定制了空白行列以跟踪填充列,并且我将填充列设置为120,但是突出显示更短的行。

我已经浏览了Jade模式的代码,并没有看到任何可以解释这种行为的内容,但我对Emacs Lisp只有一点理解。

提前感谢任何指针!

1 个答案:

答案 0 :(得分:5)

您必须在激活whitespace-line-column之前设置whitespace-mode 。也就是说,如果您想要更改其值,除非您再次关闭whitespace-mode,否则它不会生效。具有讽刺意味的是,在您激活模式一次之前,该变量不适用于M-x customize: - (

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

(setq whitespace-line-column 120)

由于在启动Emacs时会评估.emacs,因此该设置将在您第一次调用空白模式之前生效,因此应该执行您想要的操作。如果您不想全局设置值,但仅限于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))))

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

  • 线尾

(如果有的话)。这应该关闭全局独立于whitespace-line-column的长线突出显示(再次,只有在你去除并重新激活空白模式之后)。