我试图突出显示Emacs中几个不可见的符号,特别是n
。我正在尝试以下操作:
(standard-display-ascii ?n "¬n")
(font-lock-add-keywords nil '(("¬" . font-lock-comment-face)))
不幸的是,看起来只有显式键入的符号才会使用指定的字体。是否有适当的方法来突出显示ascii符号?还有一个相关的问题:将第二个表达式中的nil
替换为'lisp-interaction-mode
会使它不再工作。为什么呢?
我刚刚启动了emacs,执行了M-x
命令,然后输入
whitespace-mode
之后我得到了一个$
换行符指示符
如果要只显示换行符,可以使用以下命令:
(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)))
-
使用库
突出显示换行字符是微不足道的highlight-chars.el
:M-x hc-highlight-chars C-q C-j RET font-lock-comment-face RET
提示您输入要突出显示的字符——点击
C-q C-j
(插入换行字符),然后点击RET
以输入所插入的字符列表(这里只是一个换行字符)。然后提示您选择用于突出显示这些字符的字符(在本例中,只有一个字符,换行符)——键入
font-lock-comment-face
或您喜欢的任何其他字符名称。查看库的描述在这里。
-
如果你还想改变显示显示(突出显示的字符)¬,那么只要做你已经尝试过的:
M-: (standard-display-ascii ?n "¬n")
#1 + #2的结果在¬
中突出显示,以代替通常的换行符显示。