Emacs显示不可见的符号(\ n)

时间:2014-05-11 05:01:48

标签: emacs elisp

我试图在Emacs中突出显示几个不可见的符号,特别是\n。我正在尝试以下方法:

(standard-display-ascii ?\n "¬\n")
(font-lock-add-keywords nil '(("¬" . font-lock-comment-face)))

不幸的是,看起来只有明确键入的符号才会使用指定的font-face。有没有正确的方法来突出显示ascii符号?

还有一个相关问题:在第二个表达式中将nil替换为'lisp-interaction-mode会使其不再有效。那是为什么?

3 个答案:

答案 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)

  1. 使用库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的说明。

  2. 如果您还要将显示更改为显示(突出显示的字符)¬,那么也要执行您已尝试过的操作:

    M-: (standard-display-ascii ?\n "¬\n")
    
  3. #1 +#2的结果突出显示¬,代替通常的换行显示。