Показывать конечные пробелы в emacs только в непустых строках - PullRequest
12 голосов
/ 11 сентября 2009

Прямо сейчас я использую:

(setq show-trailing-whitespace t)

В моем .emacs, чтобы показать конечные пробелы для моего режима CC. Я не могу понять, как сделать так, чтобы он не отображал шрифт для пробелов только для пробелов.

Пустые строки, разделяющие код отступа, иногда имеют отступ на уровне кода, а иногда и вовсе без отступа, и я не хочу обращать внимание на строку, которую не хочу менять.

Я бы хотел придерживаться встроенных модулей emacs, но я хочу использовать whitespace.el , но не ясно, как его настроить, чтобы сделать это.

Ответы [ 2 ]

11 голосов
/ 12 сентября 2009

Поскольку вы хотите использовать встроенные модули, я бы посоветовал использовать указанную вами ссылку whitespace.el - так как она поставляется с Emacs 23. Этот ответ работает при использовании этого пробела.

Пока у вас есть 'trailing в вашей переменной 'whitespace-style (которая по умолчанию), следующее изменение в регулярном выражении для того, что обозначает "завершающий" пробел, должно давать вам то, что вы хотите:

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

Примечание: Это просто значение по умолчанию с добавлением \b, указывающее, что пробел должен следовать за словом.

2 голосов
/ 14 декабря 2010

С

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

слово не обязательно должно быть непосредственно перед конечными пробелами, но может быть, например, знаки препинания между ними (т. е. это также выделяет завершающие пробелы за несловесными символами).

Edit:
Использование

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

выделяет все завершающие пробелы и, таким образом, устраняет недостаток, упомянутый в комментарии № 1.

...