终端emacs颜色困惑

刚接触emacs,主要用来装逼。但是遇到了一些问题,无法解决。如下图,左边的gui比右边terminal(urxvt)的色彩鲜艳很多,尝试修改主题的默认背景和前景色,也换了各种主题,无解。有些主题改了后竟然直接变成蓝色背景。谷歌了下说终端要支持256色,修改bash或zsh,然而我的终端早已是256了。

M-x shell

echo $TERM

看看值是什么...

xterm-256color,早已是256了啊

其他终端应用没遇到过这样的问题

与GUI模式相比,终端模式的Emacs色色彩进行了2次的色彩空间的转换,

第一次是Emacs代码定义的色彩空间到TERM所定义的色彩空间的转换, 到终端显示的时候,还会再根据终端设置进行一次色彩空间的转换,所以色彩出现与预期不一致的情况很容易发生.

感谢解答,看来这问题一下子还解决不了,将就用吧

打开日历确定现在不是 1998 年。

谷歌说的是 24bits 真彩色吧。

256色不够 要24位真彩色才能和GUI的颜色比

理论上来说的话,如果只是显示文字的情况下, 256色和24位色并不会有差别, 因为是色彩空间的映射,如果映射倒同样的颜色值, 那就是一样的.

只是一般都会有偏差,感觉会不一样.

文字的颜色也是有差别的呀

此言差矣。

基于真彩色设计的 theme 放到 256 色终端会明显失真。并不是说 256 和 真彩的 #ffffff 会有差别,而是真彩色有更多选择。比如蓝色,在 256 下只能显示 windows 蓝屏那个刺眼的蓝,而实际我想要的是比较柔和的 IBM 蓝。

确实out了.现在已换真彩色终端.

在终端这边,256色都映射成什么颜色,都是可以设置的,也就是说你可以把256色的任何一个颜色调整成你希望的颜色.

设置当然是可以,问题是 256 色模式下不一定能找到对应的颜色。直观表现就是,被“降级”了。

丑到什么程度?丑到我根本不敢放截图,还得在 README 里声明一下的程度。https://github.com/ashfinal/vim-colors-violet