vim - emacs如何为特定的symbol修改颜色

 雨天是最美 发布于 2022-10-27 12:35
  • 现在我emacs中显示的代码颜色如下所示

  • 我现在希望new这个关键字可以用其他的颜色高亮而不是白色,然后在代码中的数字也可以用其他颜色高亮而不是白色

自己折腾了一个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)))))

但是发现一个问题就是,普通代码中的数字的确是用非白色高亮了,可是字符串中的数字也被高亮了,我想重新写一个判断是否为字符串的hook去覆盖,但是折腾了半天也不对,new关键字的高亮也是一样,在代码中高亮了,字符串和注释中也是被高亮了,反而不好看了

而且还有一个问题就是,上面这个简陋的正则只能让

foo1

显示正常

如果是

foo11
foo111

之类的变量中连续超过两个数字的话,变量中得数字也会被不同颜色高亮了

正则不是很精通,请大大们指点一下,该装什么mode或者写个啥hook可以满足我地需求

1 个回答
  • 不用那么麻烦, 具体技术就不做多解释了, 除了修改 color theme , 我有用下面这种脚注法, 下面是高亮 l1 l2 l3 三个字符串的:

    #+STARTUP: content
    # Local Variables:
    # eval: (highlight-phrase "\\bl1\\b" (quote hi-pink))
    # eval: (highlight-phrase "\\bl2\\b" (quote hi-yellow))
    # eval: (highlight-phrase "\\bl3\\b" (quote hi-green))
    # End:
    

    理论上, 挂到某个 mode-hook 里就可以实现跟 mode 关联了. 更多细节可以相关搜索.

    2022-10-27 22:59 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有