仅在非空行上显示emacs上的尾随空格

时间:2009-09-11 19:44:05

标签: emacs coding-style whitespace

现在我正在使用:

(setq show-trailing-whitespace t)

在我的.emacs中为我的CC模式显示尾随空格。我似乎无法弄清楚如何让它不显示仅空白行的空白字体。

分隔缩进代码的空行有时会在代码级别缩进,有时根本不会缩进,我不想把注意力吸引到一条我不想改变的行。

我想坚持使用内置的emacs模块,但我愿意使用whitespace.el,但目前尚不清楚如何配置它来执行此操作。

2 个答案:

答案 0 :(得分:11)

由于你想使用内置模块,我建议使用你指定的whitespace.el链接 - 因为它随Emacs 23一起提供。这个答案适用于使用那个空格。

只要您的'trailing变量中有'whitespace-style(默认情况下是这样),对正则表达式的正则表达式的以下更改将指示“尾随”空格应该为您提供所需内容:

(setq whitespace-trailing-regexp
  "\\b\\(\\(\t\\| \\|\xA0\\|\x8A0\\|\x920\\|\xE20\\|\xF20\\)+\\)$")

注意:这只是默认值,前缀为\b,表示空格应该跟一个单词。

答案 1 :(得分:2)

使用

"\\b.*\\(\\(\t\\| \\|\xA0\\|\x8A0\\|\x920\\|\xE20\\|\xF20\\)+\\)$"

该单词不需要直接位于尾随空格的前面,但可以有例如它们之间的标点符号(即,这也突出显示非单词字符后面的尾随空格)。

编辑:
使用

"\\b.*?\\(\\(\t\\| \\|\xA0\\|\x8A0\\|\x920\\|\xE20\\|\xF20\\)+\\)$")

突出显示所有尾随空格,从而消除了评论#1中提到的缺点。