我正在运行 Emacs,以 C++ 模式和 PHP 模式编辑文件。我喜欢语法高亮作为一个概念,但默认颜色是一种讽刺。我几乎看不懂其中的一些:太黑了。改变他们的价值观最简单的方法是什么?我似乎在网上找不到任何关于此的内容。我什至不介意在编译自己的 Emacs 时更改二进制文件。我只想找到它说蓝色是#0000FF 的地方并将其更改为例如#AAAAFF。
5 回答
我发现对这类事情使用颜色主题最容易。
但是,如果您不想这样做,请将光标放在有问题的文本上,然后点击M-x customize-face
. 它应该默认为光标所在的面。
请参阅49.1.6 自定义特定项目。
两种方法 - 您可以安装包颜色主题,它有很多不错的方案可供选择,并且更容易手动完成。手动看起来像这样(在您的.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文件中结束。
将光标放在要更改的面(“颜色”)上。打C-u C-x =。这将告诉您该位置存在哪些面孔,并且它会让您单击以自定义它/它们。保存您的自定义。
如果您根本不关心颜色突出显示,或者以前的答案都不适合您(或者花费太多时间和精力来弄清楚),这里有一个非常简单的解决方案,可以完全摆脱颜色。
键入以下内容将摆脱颜色:
M-x global-font-lock-mode
您也可以将此作为临时步骤,让您实际查看屏幕上的所有内容以尝试上述任何答案。就我而言,这非常有用,因为允许我更改颜色的某些关键文本的颜色本身几乎是不可见的——例如,Mx.
如果您希望更改是永久性的,您可以将其添加到您的.emacs文件中:
(setq-default global-font-lock-mode nil)
从 Emacs 24.1 开始,您可以使用M-x customize-themes
来选择颜色主题。
Emacs 附带了十几个具有不同亮度和色彩的主题,因此您很可能会找到最符合您喜好的内容。
您还可以在https://peach-melpa.org/找到更多可通过 MELPA 安装的颜色主题。