tmux 下使用 spacemacs 颜色过于惨烈了,有什么办法?

因为工作需要,现在在云端使用 tmux+终端版 spacemacs,有没有什么办法让 tmux 中显示的 spacemacs 颜色不要这么惨烈?

欢迎大家建言,我对终端下使用 ssh + tmux + emacs 了解基本为零

M-x load-theme

<TAB>

然后都试试

1 个赞

我用的 Spacemacs Dark,感觉还可以

1 个赞

是在云端上用吗?还是本地?我在本地用效果和你的差不多,但是通过 ssh 在云端上用颜色就差很多了

这个截图是本地的,我在远程的机器上也搭过没问题;这个应该只和 Emacs 的主题配置和终端软件的主题配置有关

我的终端连接远程直接使用也没有问题,但是再加一层 tmux 就变丑了

看远程/本地两种情况下,这个函数里定义的颜色是否有差别

1 个赞

tmux 加这个配置试试: set -g default-terminal "screen-256color"

1 个赞

主要就是 Emacs 26+ 和支持 24bits color 的终端,没别的:

- Local (macOS)
    |
    + iTerm2 (支持 24bits color)
        |
        + Bash ---------------.
            |                 |
            + Remote (Linux)  | 设置相同的 terminfo
                |             |
                + Bash -------'
                    |
                    + Tmux
                        |
                        + Emacs 26+

本地和远程 Emacs 列出的色彩数目是一样的,theme 配色分毫不差。

1 个赞

试了下,只要本地终端支持真彩,然后用您之前在 https://emacs-china.org/t/topic/2719 提到的方法设置好远端的 terminfo 就好了。 注意不要 copy. archlinux 放在 ~/.terminfo/x/ 下, mac 放在 ~/.terminfo/78 下——用了ascii 编码…… 这样子中间就算有没有设置 terminfo 的跳板机也是可以的。

另外,想问下,这个图是怎么画出来的呀?

tmux.conf

set-option -sa terminal-overrides ',st-256color:RGB'

set -g default-terminal "tmux-256color"

把st-256color 改成你的 终端的 TERM变量,比如 xterm ,kitty什么的就可以用终端的spacemacs主题了

一个字一个字打

echo $TERM

如果结果是Screen 可以改成

TERM=xterm-256color emacs

如果ok写到.bashrc中固化下来

在emcs里面检查颜色数量可以用M-x list-color-display

忍耐。。。。。。