【分享】一种快捷更改主题某处颜色的思路(新手友好型)

白色主题时,选择文件的高亮显示失效 继续讨论:

用别人分享的主题时总会遇到有些地方的颜色不合眼,想换成自己的喜欢的颜色却又不知从何下手。那该如何快速定位并改变这一处颜色呢?

改颜色的前提是你要知道想要修改颜色的地方叫什么。例如, 想要改高亮当前行的背景色,在emacs里高亮行叫hl-line,那手动M-x customize-face RET hl-line RET就可以自行更改了。

但是对新手来说并不知道高亮行叫hl-line;或者主题覆盖了很多package的face,有的face还inherit了一些参数,改起来不容易;又或者新装了一个package,没被主题覆盖到,就会使用默认主题的颜色,跟现用的主题不搭。

这时候可以这样快速的定位到你想要改颜色的face:

1、把你不喜欢的地方截图;(data/这一行高亮却不够亮,想改深色一些。注:红方框里的candidates是由补全框架提供的,后续我们要注意跟补全框架相关的地方)

2、将截图上传到拾色器网站,点一下高亮行发现hex代码是#e7e7e7;

3、去主题的github里搜一搜#e7e7e7;

4、发现这个颜色传给了base1,继续搜base1,发现可疑目标;

5、翻译一下,貌似是我们需要的;

6、也可以继续往下找,发现数个常见的补全框架都是用了base1,进一步验证了我们要改的颜色是#e7e7e7;

7、在本地文件里找到主题的el文件或者在github上fork过来,选一种相近不违和的颜色,把#e7e7e7改了;

8、保存、重启看看有没有成功。

如果在第3步搜不到hex代码的结果,可能有两种情况:

1、要改的颜色已有定义好的名字,例如blue green gray50等,需要耐心找找主题源代码,看看有没有这类“颜色名”;

2、可能要改颜色的地方inherit(继承、借用)了别的face的颜色,control-f 搜一搜:inherit,继续追踪。

3 个赞

高质量的帖子,授人以渔,非常受启发,竟然可以搜索颜色。

问题解决了,不是tooltip,是修改vertico-current的颜色解决的。

happy hacking!love with emacs, live in emacs~ :smiley: