Показывать конечные пробелы на emacs только на непустых строках
Сейчас я использую:
(setq show-trailing-whitespace t)
В моем .emacs
, чтобы показать конечные пробелы для моего режима CC. Я не могу понять, как это не показывать пробельный шрифт для пробельных строк.
Пустые строки, отделяющие отступы, иногда отступаются на уровне кода, а иногда вообще не отступаются, и я не хочу привлекать внимание к строке, которую я не хочу менять.
Я хотел бы придерживаться встроенных модулей emacs, но я готов использовать whitespace.el, но это не ясно, как чтобы настроить его для этого.
Ответы
Ответ 1
Поскольку вы хотите использовать встроенные модули, я бы посоветовал использовать ссылку whitespace.el, указанную вами - поскольку она поставляется с Emacs 23. Этот ответ работает при использовании этого пробела.
Пока у вас есть 'trailing
в вашей переменной 'whitespace-style
(которая по умолчанию), следующее изменение в регулярном выражении для того, что указывает пробел "trailing", должно дать вам то, что вы хотите:
(setq whitespace-trailing-regexp
"\\b\\(\\(\t\\| \\|\xA0\\|\x8A0\\|\x920\\|\xE20\\|\xF20\\)+\\)$")
Примечание. Это только значение по умолчанию, с добавлением \b
, указывающее, что пробел должен следовать за словом.
Ответ 2
С
"\\b.*\\(\\(\t\\| \\|\xA0\\|\x8A0\\|\x920\\|\xE20\\|\xF20\\)+\\)$"
слово не обязательно должно быть непосредственно перед конечными пробелами, но может быть, например, знаки пунктуации между ними (т.е. это также подчеркивает конечные пробелы за символами, отличными от слов).
Edit:
Использование
"\\b.*?\\(\\(\t\\| \\|\xA0\\|\x8A0\\|\x920\\|\xE20\\|\xF20\\)+\\)$")
выделяет все конечные пробелы и, таким образом, устраняет недостаток, упомянутый в комментарии # 1.