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

仅在非空行上显示emacs上的尾随空格,emacs,coding-style,whitespace,Emacs,Coding Style,Whitespace,现在我正在使用: (setq show-trailing-whitespace t) 在my.emacs中,显示我的CC模式的尾随空白。我似乎不知道如何让它不显示只有空格的行的空格字体 分隔缩进代码的空行有时在代码级别缩进,有时根本不缩进,我不想把注意力吸引到我不想更改的行上 我想坚持使用内置的emacs模块,但我愿意使用,但不清楚如何配置它来实现这一点。既然您想使用内置模块,我建议使用您指定的链接-因为它是随emacs 23提供的。这个答案在使用空白时有效 只要在'空白样式变量(默认情况下)

现在我正在使用:

(setq show-trailing-whitespace t)
在my
.emacs
中,显示我的CC模式的尾随空白。我似乎不知道如何让它不显示只有空格的行的空格字体

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


我想坚持使用内置的emacs模块,但我愿意使用,但不清楚如何配置它来实现这一点。

既然您想使用内置模块,我建议使用您指定的链接-因为它是随emacs 23提供的。这个答案在使用空白时有效

只要在
'空白样式
变量(默认情况下)中有
'拖尾
,对表示“拖尾”空白的正则表达式所做的以下更改应满足您的要求:

(setq whitespace-trailing-regexp
  "\\b\\(\\(\t\\| \\|\xA0\\|\x8A0\\|\x920\\|\xE20\\|\xF20\\)+\\)$")
注意:它只是默认值,前面加了
\b
,表示空格应该跟在单词后面。

“\\b.\\\(\\(\t\\\\\\\\\\\\\\\\\\\\\\\\\\xA0\\\\\\\\\\\\\\x920\\\\\\\\\\\\\\\\\\)$”

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

编辑:
使用

“\\b.*?\(\\(\t\\\\\\\\\\\\\\\\\\\\\xA0\\\\\\\\\\\\x920\\\\\\\\\\\\\\\\\)$”


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

在缺点方面,
M-x空格清理
不再删除所有空格,只删除行中最后一个空格(突出显示的空格)…使用
M-x图片模式
后跟
C-C-C
删除所有尾随空格。我无法使此建议的解决方案在Emacs 26.3中工作。我正在使用“\\b.*?\(\(\t\\\\\\\\\\\\\\\\\\\\\\\\\\\\xA0\\\\\\\\\\\\\xF20\\\\\\\\\\\\\\\\\\\\\xA0\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\)+$”作为空白尾随regexp的值,遗憾的是,由所有空白组成的行仍然以红色突出显示。@jim newton您的表达式包含了
\(
\(而不是
\\\\\\\\\?