Emacs "Shell"モードでは、 `ls`に使用される色の変更は機能しません。

Emacs

フォローするhttps://unix.stackexchange.com/a/94508/674使用する色を変更しますls。これはbashで動作します。

Emacs(Mxシェル)の「シェル」モードでバッファを開くと、変更は機能しません。 Emacs "Shell"モードに同じ変更を適用する方法が疑問に思います。

ベストアンサー1

一部のバージョンでは、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, 

これは、Emacs独自のブランドANSIコードをサポートする私が作成したTerminfoエントリです(太字、イタリック体、アンダースコアを別々の属性として使用して8つの色のみをサポート)。にコンパイルしてくださいtic dumb-emacs-ansi.ti

次に、.bashrcに追加します。

if [ "$TERM" = dumb ] && [ "$INSIDE_EMACS" ]; then
    export TERM=dumb-emacs-ansi COLORTERM=1
fi

Bashを再起動しなくても、既存のシェルセッションでエクスポートラインを実行して更新できます。

おすすめ記事