我按照https://unix.stackexchange.com/a/94508/674更改ls
. 这在 bash 中有效。
当我在 Emacs(Mx shell)中打开“Shell”模式的缓冲区时,更改不起作用。我想知道如何将相同的更改应用于 Emacs“Shell”模式?
某些版本ls
需要从 terminfo 数据库了解终端支持哪些颜色代码。
首先,创建以下文件(dumb-emacs-ansi.ti):
dumb-emacs-ansi|Emacs dumb terminal with ANSI color codes,
am,
colors#8, it#8, ncv#13, pairs#64,
bold=\E[1m, cud1=^J, ht=^I, ind=^J, op=\E[39;49m,
ritm=\E[23m, rmul=\E[24m, setab=\E[4%p1%dm,
setaf=\E[3%p1%dm, sgr0=\E[m, sitm=\E[3m, smul=\E[4m,
Run Code Online (Sandbox Code Playgroud)
这是我创建的一个 Terminfo 条目,支持 Emacs 自有品牌的 ANSI 代码(仅支持 8 种颜色,具有粗体、斜体和下划线作为独立属性)。用 编译它tic dumb-emacs-ansi.ti
。
然后添加到您的 .bashrc:
if [ "$TERM" = dumb ] && [ "$INSIDE_EMACS" ]; then
export TERM=dumb-emacs-ansi COLORTERM=1
fi
Run Code Online (Sandbox Code Playgroud)
您只需在现有 shell 会话中运行导出行即可更新它,而无需重新启动 bash。