【问题标题】:Change Emacs syntax highlighting colors更改 Emacs 语法高亮颜色
【发布时间】:2010-11-07 18:29:33
【问题描述】:

我正在运行 Emacs,在 C++ 模式和 PHP 模式下编辑文件。我喜欢语法高亮作为一个概念,但默认颜色是一种讽刺。我几乎看不懂其中的一些:太黑了。改变他们的价值观最简单的方法是什么?我似乎在网上找不到任何关于此的内容。我什至不介意在编译自己的 Emacs 时更改二进制文件。例如,我只想找到显示蓝色为#0000FF 的位置并将其更改为#AAAAFF。

【问题讨论】:

    标签: emacs syntax-highlighting colors font-lock-mode


    【解决方案1】:

    我发现在这类事情上使用color-theme 最容易。

    但如果您不想这样做,请将光标放在有问题的文本上,然后点击M-x customize-face。它应该默认为光标所在的面。

    49.1.6 Customizing Specific Items

    【讨论】:

    • 一个不错的color theme
    • 问题是,当我输入M-x customize-face 时,我根本看不懂的一种颜色(它是一种在黑色背景上几乎不可见的深蓝色)是显示的任何文本! (此外,ColorTheme 链接似乎有问题)
    • 好吧,我试图修复一个有效的链接,但是当它从这个页面被关注时,它仍然不起作用!!!
    • 如果M-x customize-face 默认为hl-line,那是因为高亮行标记了活动行。要获得“违规”文本的真实面貌,请执行M-x global-hl-line-mode 暂时禁用高亮行。
    【解决方案2】:

    两种方式 - 您可以安装包 color-theme,它有很多不错的方案可供选择,并且更容易手动完成。手动看起来像这样(在您的 .emacs 文件中)

    (custom-set-faces
       custom-set-faces was added by Custom.
       If you edit it by hand, you could mess it up, so be careful.
       Your init file should contain only one such instance.
       If there is more than one, they won't work right.
      '(default ((t (:inherit nil :stipple nil :background "lightyellow2" :foreground "gray20" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight bold :width normal :family "liberation mono"))))
      '(background "blue")
      '(font-lock-builtin-face ((((class color) (background dark)) (:foreground "Turquoise"))))
      '(font-lock-comment-face ((t (:foreground "MediumAquamarine"))))
      '(font-lock-constant-face ((((class color) (background dark)) (:bold t :foreground "DarkOrchid"))))
      '(font-lock-doc-string-face ((t (:foreground "green2"))))
      '(font-lock-function-name-face ((t (:foreground "SkyBlue"))))
      '(font-lock-keyword-face ((t (:bold t :foreground "CornflowerBlue"))))
      '(font-lock-preprocessor-face ((t (:italic nil :foreground "CornFlowerBlue"))))
      '(font-lock-reference-face ((t (:foreground "DodgerBlue"))))
      '(font-lock-string-face ((t (:foreground "LimeGreen"))))
    

    ...

    等等。等等

    你也可以输入

    `M-x customize-face RET`
    

    这将为您提供所有要设置的自定义项,最终在您的 .emacs 文件中结束。

    【讨论】:

      【解决方案3】:

      将光标放在要更改的面(“颜色”)上。点击 C-u C-x =。这将告诉您该位置存在哪些面孔,并且它会让您单击以自定义它/它们。保存您的自定义设置。

      【讨论】:

      • 我对我应该在自定义屏幕中输入的内容一无所知。一方面,一些重要的东西是我无法阅读的字体颜色(这就是我首先要解决的问题!)其次,我没有看到任何明显的颜色参考或如何改变它们。
      • @Michael:如果您无法阅读 Customize 中的文本,请从原始的 Emacs 会话中使用它:使用 emacs -Q 启动 Emacs。如果您可以阅读文本,那么您应该能够看到当前用于定义您正在自定义的面部的属性的复选框。单击链接Show all attributes 以显示所有属性。根据需要选中或取消选中任何属性。当您选中一个框时,您会看到它的当前值。如果属性BackgroundForeground 被选中,那么您可以使用当前值旁边的Choose 按钮为该属性选择不同的颜色。
      【解决方案4】:

      如果您根本不关心颜色突出显示,或者之前的答案都不适合您(或花费太多时间和精力来弄清楚),这里有一个非常简单的解决方案,可以完全摆脱颜色.

      键入以下内容将消除颜色:

      M-x global-font-lock-mode

      您也可以将此作为临时步骤,让您实际查看屏幕上的所有内容以尝试上述任何答案。就我而言,这非常有用,因为某些可以让我更改颜色的关键文本的颜色本身几乎是不可见的——例如,M-x 的提示。

      如果您希望更改是永久性的,可以将其添加到您的 .emacs 文件中:

      (setq-default global-font-lock-mode nil)

      【讨论】:

        【解决方案5】:

        从 Emacs 24.1 开始,您可以使用 M-x customize-themes 选择颜色主题。

        Emacs 带有十几个不同亮度和色彩的主题,因此您很可能会找到最符合您喜好的主题。

        您还可以通过 https://peach-melpa.org/ 找到更多可通过 MELPA 安装的颜色主题。

        【讨论】:

          猜你喜欢
          • 2013-07-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-26
          • 1970-01-01
          相关资源
          最近更新 更多