我正试图让emacs突出显示尾部空格。我尝试过使用WhiteSpace,也尝试过将show-trailing-whitespace
变量设置为true,但在每种情况下,它都会将换行符和空格字符的表示形式更改为$
和·
字符,如本屏幕截图所示。
理想情况下,我只希望看到后面的空白以红色突出显示,而没有任何这样的字符。
免责声明:我是emacs的新手,所以这可能是显而易见的。
我不使用任何库。我只是将show-trailing-whitespace
设置为t
,任何尾随的空白都显示为红色。换行符和空格字符的表示方式没有改变。
事实上,我的".emacs"
文件包含这样一行:
(setq-default show-trailing-whitespace t)
如果您不想编辑".emacs"
文件,您可以尝试:
C-h v show-trailing-whitespace RET
然后单击customize
链接- (或仅
M-x customize-variable RET show-trailing-whitespace RET
) - 单击
toggle
按钮将其设置为on (non-nil)
- 单击菜单按钮
State
>Set for Current Session
- 单击菜单按钮
State
>Save for Future Sessions
[编辑](感谢Francesco Frassinelli的评论)
对于setq-default
,每个模式的值都会发生变化。
如果你想在某些模式下禁用它(例如term-mode
),你必须:
查找当前缓冲区的模式名称。通常,您可以使用
M-x describe-mode RET
(快捷方式C-h m
或<f1> m
)从缓冲区中获取它。找到该模式的条目"hook"。通常,它是带有后缀
-hook
的模式名称。您可以通过在描述模式的缓冲区中搜索"hook"来找到它。例如,您可以阅读:Entry to this mode runs the hooks on ‘term-mode-hook’
将以下内容添加到
".emacs"
文件中:(add-hook 'term-mode-hook (lambda () (setq show-trailing-whitespace nil)))
或者你可以试试:
M-x customize-variable RET term-mode-hook RET
- 单击
INS
按钮 - 粘贴
(lambda () (setq show-trailing-whitespace nil))
- 单击菜单按钮
State
>Set for Current Session
- 单击菜单按钮
State
>Save for Future Sessions
注意,当设置为setq
时,show-trailing-whitespace
自动变为缓冲区本地。
将whitespace-style
变量的值更改为
(face trailing)
您可能需要重新启动空白模式才能使更改生效。
要设置变量,请使用M-xset-variable
输入。
另一个答案是使用库highlight-chars.el
(说明:高亮显示库)。
命令hc-toggle-highlight-trailing-whitespace
执行您的请求。
您也可以自动打开这种高亮显示,无论是在任何地方,还是在给定的缓冲区或给定的模式下。