终端Emacs中的真彩色(24位)

时间:2013-02-03 13:16:01

标签: emacs terminal konsole

我正在寻找一种在使用图形终端仿真器时在emacs中拥有24位颜色的好方法。 例如,Konsole确实支持真彩色转义码,如下所示:https://github.com/robertknight/konsole/blob/master/user-doc/README.moreColors

我的问题是我不明白emacs如何将面部信息转换为终端的转义序列。我也没有管理是否存在对24位颜色的支持,或者是否可以用emacs lisp实现它。我要求的是指向相关Emacs文档的指针,或关于终端emacs中的真彩色是否可行的明智意见。

4 个答案:

答案 0 :(得分:4)

最近包含在emacs 26。1(2018年5月28日),

使用此文件:terminfo-24bit.src

# Use colon separators.
xterm-24bit|xterm with 24-bit direct color mode,
  use=xterm-256color,
  setb24=\E[48:2:%p1%{65536}%/%d:%p1%{256}%/%{255}%&%d:%p1%{255}%&%dm,
  setf24=\E[38:2:%p1%{65536}%/%d:%p1%{256}%/%{255}%&%d:%p1%{255}%&%dm,
# Use semicolon separators.
xterm-24bits|xterm with 24-bit direct color mode,
  use=xterm-256color,
  setb24=\E[48;2;%p1%{65536}%/%d;%p1%{256}%/%{255}%&%d;%p1%{255}%&%dm,
  setf24=\E[38;2;%p1%{65536}%/%d;%p1%{256}%/%{255}%&%d;%p1%{255}%&%dm,

执行命令

tic -x -o ~/.terminfo terminfo-24bit.src

现在您可以使用truecolor启动emacs。

TERM=xterm-24bit emacs -nw

请参阅常见问题:https://www.gnu.org/software/emacs/draft/manual/html_mono/efaq.html#Colors-on-a-TTY

答案 1 :(得分:3)

AFAIK没有内置支持,因为终端中的24位色彩空间非常罕见(!?)。但是,鉴于Emacs向您开放add your own terminal support,您可以尝试编写类似于xterm-frobs.el的包。

顺便说一句,如果您只需要在终端中使用好的颜色主题,您可以尝试将GUI颜色主题转换为终端的包https://github.com/tungd/color-theme-approximate

答案 2 :(得分:1)

我使用xterm-frobs.el获得256色项支持(在xterm兼容终端中,如konsole)。我使用TERM设置“xterm-256color”。 256色支持通常对我来说已经绰绰有余了,因为在我的配色方案中我没有使用 多种颜色。上述文件试图询问终端以找出它支持的颜色数量。我不知道它是否应该(或可以适应)能够在konsole中做真正的颜色支持。

答案 3 :(得分:0)

这是可行的,但它不能单独在ELisp中完成。

这里有各种版本的emacs和tmux的补丁列表,可以让trucolor生活成为可能:

https://gist.github.com/choppsv1