emacsのシェルモード ( M-x shell )で文字化けするのですが




emacsのシェルモード ( M-x shell) で文字化けすることがありませんか?
例えばこんなかんじです。


[sugi@yumi /usr]$ ls
^[[00m^[[01;34mX11R6^[[00m/ ^[[01;34mdoc^[[00m/ ^[[01;34mi386-redhat-linux^[
[00m/ ^[[01;34minfo^[[00m/ ^[[01;34mlocal^[[00m/ ^[[01;34mshare^[[00m/ ^[
[01;34mvine^[[00m/
^[[01;34mbin^[[00m/ ^[[01;34metc^[[00m/ ^[[01;34mi486-linux-libc5^[[00m/
^[[01;34mlib^[[00m/ ^[[01;34mman^[[00m/ ^[[01;34msrc^[[00m/
^[[01;34mdict^[[00m/ ^[[01;34mgames^[[00m/ ^[[01;34minclude^[[00m/
^[[01;34mlibexec^[[00m/ ^[[01;34msbin^[[00m/ ^[[01;36mtmp^[[00m@
^[[m[sugi@yumi /usr]$ ls > /tmp/aa
[sugi@yumi /usr]$

これはls のカラーモードにemacsが対応していないから発生します。
カラーモードが必要ないのであれば aliasで設定してある "ls --color" の 定義をはずせば回避できます。
また、ターミナルではカラーモード、emacs上ではカラーモードを外すには
環境変数が変化することを利用して.bashrc に以下の記述をしておきます。
if [ ${TERM} = "dumb" ] ; then
alias ls='ls -F'
fi

ここで"dumb"の部分はemacsのシェルモードで
echo $TERM
で$TERMにセットされている値を記述します。




       [へなちょこlinuxのコーナーへ]    [ホームへ]