Emacs空白模式忽略空白行列和填充列
我在Mac OS X上使用Emacs 24.1.1时遇到问题。我正在编辑Jade和CoffeeScript文件,因此我已经为这些文件启用了空白模式文件类型。Emacs空白模式忽略空白行列和填充列
我看到的是,无论空白行列的设置如何,超过70个字符的行都用空白行字体突出显示。
在这幅图中,很显然,我已经定制的空白行,列跟踪填充柱,和我设置填充列120,但更短的线路正在凸显。
我浏览了Jade模式的代码,没有看到任何可以解释行为的东西,但我对Emacs Lisp只有一种理解。
在此先感谢您的指点!
您必须设置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
ENTERwhitespace-style
ENTER)和值列表中删除的条目:
- 线
- 线尾
(如果任何)。这应该关闭全局长线的突出显示,而不依赖于whitespace-line-column
的值(再次,仅在您禁用并重新激活空白模式后)。
你认为这是一个错误吗?在我看来,空格模式应该在每当它改变时遵守空白行列(和填充列)。 – 2012-07-12 18:24:16
'fill-column'是缓冲区本地。你可以在你的'user.jade'缓冲区中通过在当前缓冲区输入'M-:fill-column'来确认它是120吗? – ataylor 2012-07-11 19:49:48
^H v填充列 填充列是“C源代码”中定义的变量。 它的值是120 原值是70 本地缓冲区index.jade;全球价值是70 – 2012-07-12 01:28:46
它看起来像空白模式只符合填充列的全局意义;它似乎没有意识到缓冲区本地版本。 – 2012-07-12 01:31:11