我可以修改 Emacs 迷你缓冲区的颜色吗?

21

我喜欢在终端上使用Emacs,但迷你缓冲区的蓝色颜色很难看清楚。

这真的很需要,谢谢帮忙!

2个回答

38

试试这个:

(set-face-foreground 'minibuffer-prompt "white")

3
如果你无法忍受终端的蓝色颜色,那么你可以尝试更改它。不同的终端模拟器具有不同的工具进行更改,但大多数使用X资源。以下是我个人对urxvt的颜色选择:
URxvt.background: #000000 URxvt.foreground: gray75 URxvt.color3: DarkGoldenrod URxvt.color4: RoyalBlue URxvt.color11: LightGoldenrod URxvt.color12: LightSteelBlue URxvt.color7: gray75 URxvt.colorBD: #ffffff URxvt.colorUL: LightSlateGrey URxvt.colorIT: SteelBlue URxvt.cursorColor: grey90 URxvt.highlightColor: grey25
当然,你所选择的终端模拟器可能具有不同的类(URxvt)或应用程序(urxvt,在我的示例中未使用)名称,并且资源名称也可能不同。 urxvt将使用颜色名称(来自服务器的rgb.txt文件——使用xcolorsel(1)在一个便捷的应用程序中查看它们)或数字,但其他终端可能没有这么灵活。
从我的xterm(1)手册页上,颜色及其编号如下:
0 black 1 red3 2 green3 3 yellow3 4 自定义的深蓝色 5 magenta3 6 cyan3 7 gray90
8 gray30 9 red 10 green 11 yellow 12 自定义的浅蓝色 13 magenta 14 cyan 15 white 如果你的终端确实使用X资源,请将所需资源保存到文件中(按照惯例命名为~/.Xdefaults或~/.Xresources),然后使用xrdb -merge filename将其加载到服务器中。然后重新启动终端,并尝试它。
如果你的终端使用其他机制来配置颜色选择(也许有一个“首选项”菜单项或类似的东西),它可能仍然在某个地方列出了不同的颜色,你需要更改颜色4和12以更改蓝色。
另一方面,如果你除了emacs之外喜欢蓝色,你可以尝试让emacs使用不同的颜色(对此我没有任何想法,抱歉),或者用不同的“class”运行你的终端模拟器,这样它就会读取不同的X资源。(xterm(1)具有一个-class参数用于此操作)。

谢谢你详细的回答。我在Mint Linux上使用LXDE终端,没有你说的那个目录。最好让Emacs改变颜色,如果无法实现,你的答案就是一个新选择。 - chenge
哎呀,我不确定LXTerminal是否允许您选择其他颜色;它声称是基于VTE的,而http://people.redhat.com/nalin/vte/html/vteterminal.html#VTE-TERMINAL-SET-COLORS中有一个关于如何更改颜色调色板的描述,没有提到它获取默认值的位置,因此我认为它们必须通过编程进行更改。 http://wiki.lxde.org/en/LXTerminal上的LXTerminal截图没有显示颜色调色板选择器小部件,因此可能无法实现。检查文档并希望一切顺利。 :) - sarnold
啊,极简主义的代价:http://www.gnomefiles.org/app.php/LxTerminal "2. 支持自定义前景和背景颜色" 没有提到整个调色板。可以随意使用其他终端仿真器,我建议使用urxvt,但xterm、rxvt、aterm、wterm、Eterm、xfce4-terminal、xvt、mlterm、kterm、konsole、gnome-terminal都是流行的选择,大多数(如果不是全部)都可以让您更改color4和color12。或者您可以向LXDE团队提交功能请求。 - sarnold
lxterminal具有多标签功能,其他终端似乎没有。 - chenge
@swdev,我认为Windows DOS框可以让你在单击窗口左上角的框时更改颜色方案。它会给你一个命令菜单,在通常的选择/剪切/复制/粘贴之间,还会有一个用于窗口大小和_希望的_颜色的选项。 - sarnold
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接