只有从终端启动 Emacs 时,shell-mode 才能显示颜色?

如题。咱用 Linux,从图标启动 Emacs 时,在 shell-mode 下运行 ls 是这样:

如果在终端里输入 emacs 启动,再在 shell-mode 下运行 ls 是这样:

用没有配置过的 Emacs 测试也是一样。各位有什么头绪吗?

没有颜色只是没有加 --color=auto 吧,可以 which ls 看一下实际的命令是啥。

--color=always 测试也一样有问题

看了一下,终端启动时多了一个环境变量 COLORTERM, 可以自己弄一下 export COLORTERM=truecolor 或者将下面配置加入 emacs 的配置文件中 (setenv "COLORTERM" "truecolor")

2 个赞

的确如此,我这边 gls --color=always 产出不出颜色,改成 COLORTERM=truecolor gls --color=always 却可以。

你太棒了!我想问下怎么查出来的 :rofl:

猜的,终端启动跟图标启动多半是读入的变量不同,两者方式分别打开 shell 后输入 env 对比下变量有什么不同,因为是颜色相关我就特别注意了一下 color 相关字眼,结果一下子就看到了。

聪明✓

紫薯布丁