【问题标题】:How to set emacs operator color?如何设置emacs运算符颜色?
【发布时间】:2014-02-22 00:17:56
【问题描述】:

如何设置运算符的字体颜色? 我正在使用 C++ 编程,我希望像 '+'、'='、'!='、'

我尝试将光标移动到运算符和“M-x customize-face”上,但默认情况下它会将我带到“所有面孔”。我应该编辑哪个?

【问题讨论】:

    标签: emacs font-lock


    【解决方案1】:

    我相信这就是你要找的。​​p>

    ;;       * the name of our face *
    (defface font-lock-operator-face
      '((((class color)
           :background "darkseagreen2")))
      "Basic face for highlighting."
      :group 'basic-faces)
    
    ;; You'll have a hard time missing these colors
    (set-face-foreground 'font-lock-operator-face "red")
    (set-face-background 'font-lock-operator-face "blue")
    
    (font-lock-add-keywords 'c++-mode
      '(("\\(~^&\|!<>:=,.\\+*/%-]\\)" 0 'font-lock-operator-face)))
    

    【讨论】:

    • 您忘记了 &amp;|!?;。此外,regexp-opt 非常适合制作这类正则表达式。
    • 面部护理。特别是因为它是在 OP 的要求中。已添加。
    • 非常感谢!顽皮的cmets!哈哈
    • 我在我的 .emacs 中剪切并粘贴代码,它给了我错误:“错误的类型参数:listp, :background”。我哪里错了?
    • 改用(defface font-lock-operator-face "Basic face for highlighting." :group 'basic-faces)
    【解决方案2】:

    默认情况下,在我的c++-mode 版本(Emacs 24.3 默认)中,运算符不是font-locked。您可以使用C-u C-x = 获取光标下的人脸。要将字体锁定添加到运算符,您可以这样添加:

    (font-lock-add-keywords 'c++-mode
      '(("\\(~^<>:=,.\\+*/%-]\\)" 0 'highlight)))
    

    正则表达式和面部可以自定义。我不是正则表达式忍者,所以突出显示的运算符非常简单。

    【讨论】:

    • 这对我不起作用。 Emacs 已正常初始化,但没有任何不同。我猜想'highlight 只是碰巧使它变成白色,和普通字符一样?
    • 我可以指定我喜欢的颜色吗?
    • 当然,定义一个面并将其设置为您想要的颜色(set-face-foreground)。
    • 我完全是 emacs 新手,请你解释一下好吗?因为我不知道像 'fond-lock-add-keywords' 这样的命令意味着什么,如果它不起作用,我就找不到解决方法。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-17
    • 2013-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多