emacs如何为特定符号设置颜色

时间:2014-07-14 13:41:33

标签: ruby emacs clojure elisp

我使用osx 10.9.4和emacs 24.3.1 现在我的emacs工作正常

但我想更改等号的高亮颜色和代码中的数字而不是白色

我尝试在点文件中写下一个elisp脚本

(add-hook 'after-change-major-mode-hook
  (lambda () (font-lock-add-keywords 
               nil 
               '(("[^a-zA-Z]\\([0-9]+\\)[^a-zA-Z]" 
                  1 font-lock-warning-face prepend)))))
(add-hook 'after-change-major-mode-hook
  (lambda () (font-lock-add-keywords 
               nil 
               '(("\\(=\\)" 
                  1 font-lock-warning-face prepend)))))

我现在可以使用elisp脚本更改代码中等号和数字的颜色,但它也会更改字符串和注释中等号和数字的颜色,那么我怎样才能使它正确?

1 个答案:

答案 0 :(得分:0)

您需要删除prepend标志。这告诉font-lock它应该为匹配的每个实例着色,即使它已经着色。

此外,更改后的主要模式挂钩是一个不好的选择,你应该在你的配置中直接将关键字添加到ruby模式关键字。

(eval-after-load "ruby-mode"
    '(font-lock-add-keywords 'ruby-mode
       ...
     ))