我试图在Emacs中突出显示几个不可见的符号,特别是\n
。我正在尝试以下方法:
(standard-display-ascii ?\n "¬\n")
(font-lock-add-keywords nil '(("¬" . font-lock-comment-face)))
不幸的是,看起来只有明确键入的符号才会使用指定的font-face。有没有正确的方法来突出显示ascii符号?
还有一个相关问题:在第二个表达式中将nil
替换为'lisp-interaction-mode
会使其不再有效。那是为什么?
答案 0 :(得分:7)
我刚刚启动了emacs,执行了命令M-x
,并输入了
whitespace-mode
之后我得到了换行符的$
指标。
答案 1 :(得分:5)
要仅显示换行符,可以使用以下内容:
(global-whitespace-newline-mode)
或替代方案:
(setq whitespace-style '(face newline-mark))
(whitespace-mode t)
并为其使用自定义符号¬
:
(setq whitespace-display-mappings
'((newline-mark 10 [172 10])))
然后whitespace-newline
font-lock可用于自定义样式。
修改强>
出于某种原因,在.emacs
配置中放置此自定义导致面部样式不适用于符号,我不确定为什么(如果有人可以解释这个会很好)。使用钩子工作正常:
(add-hook 'prog-mode-hook
(lambda ()
(whitespace-newline-mode t)))
答案 2 :(得分:3)
使用库highlight-chars.el
突出显示换行符很简单:
M-x hc-highlight-chars C-q C-j RET font-lock-comment-face RET
系统会提示您突出显示字符 - 点击C-q C-j
(插入换行符号),然后点击RET
输入您插入的字符列表(此处只是换行符号)。< / p>
然后会提示您使用面来突出显示这些字符(在这种情况下,只有一个字符,换行符) - 键入font-lock-comment-face
或您喜欢的任何其他面部名称。
请参阅图书馆here的说明。
如果您还要将显示更改为显示(突出显示的字符)¬,那么也要执行您已尝试过的操作:
M-: (standard-display-ascii ?\n "¬\n")
#1 +#2的结果突出显示¬
,代替通常的换行显示。