Emacs显示不可见符号( )



我试图突出显示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)))
  1. 使用库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或您喜欢的任何其他字符名称。

    查看库的描述在这里

  2. 如果你还想改变显示显示(突出显示的字符)¬,那么只要做你已经尝试过的:

    M-: (standard-display-ascii ?n "¬n")
    

#1 + #2的结果在¬中突出显示,以代替通常的换行符显示。

最新更新