我有点不熟悉emacs,但不确定如何找到这个。我使用solarized light颜色主题,这是一个低对比度的主题,具有智能强调,使事物易于阅读。在vim版本中,他们做的一件事是以不同于字符串其余部分的方式突出显示字符串定界符(某些语言中的双引号和单引号)。
为了让事情顺利进行,尝试着做同样的事情(但没有成功)。
然而,该主题的emacs端口没有这个功能,但我已经看到字体锁定机制发生了一些非常疯狂的事情(例如http://www.emacswiki.org/emacs/HexColour),所以我认为这是可能的。
那么,是否可以突出显示字符串定界符?如果可以,我应该在哪里查找更多有关如何执行此操作的信息?
编辑:
尝试使Jon O.的答案起作用。首先我尝试了
(defface my-string-delimiter-face
'((t (:foreground "red" :weight bold)))
"My custom face for string delimiters")
(add-hook 'after-change-major-mode-hook
(lambda ()
(font-lock-add-keywords nil '(("\\s\"\\|\\s|" 0 solarized-string-delimiter-face t)))))
为了将其添加到每个模式中(未成功),我尝试过。
然后我尝试用以下内容替换挂钩表达式:
(font-lock-add-keywords 'emacs-lisp '(("\\s\"\\|\\s|" 0 solarized-string-delimiter-face t)))
为了让事情顺利进行,尝试着做同样的事情(但没有成功)。
solarized-string-delimiter-face
)之前需要一个引号'
。我总是会忘记这一点,因为默认的字体锁定面既可以作为变量又可以作为引用符号。我编辑了我的答案以反映这一点——现在它对我有用,它能帮到你吗? - user725091(font-lock-add-keywords 'emacs-lisp-mode ...
,因为emacs-lisp-mode
是主模式的完整名称。 - user725091