呑んだくれ改めレッツゴー痛風日記
2004-02-05
_ 10:28出社。
ぎりぎり。よく起きれたもんだ。
_ emacs21のshellモードでls --color=auto
会社のサーバ(Debian woody)の僕の.bashrcには
alias ls='ls -NF --color=auto'
と設定してあって、まぁ、コレは普通のターミナルで操作する分には快適なのだが、emacs21のshellモードでlsたたくと見事にエスケープシーケンスがごちゃごちゃ表示されちゃって全然ダメ
でも、会社の別のサーバ(RedHat9)ではemacs21のshellモードで、ちゃんとautoオプションが効いて色lsじゃない普通のlsになってくれるんだよなぁ。Meadow2のshellモードでも大丈夫だしなぁ。
なんでだろう?設定はほぼ同じだからバージョンが違うのかな?emacsのバージョンはwoodyとredhatで同じだったので、原因はlsのバージョンかな?
woodyのlsはfileutilsのものでバージョンは4.1だった。redhatのlsはcoreutilsのものでバージョンは4.5.3だった。これが問題なのかな?ためしにwoodyのlsをredhat側に持ってきて動かしてみたらwoodyと同じ現象がでた。めちゃめちゃな確認方法だけど、ちょっと当たっているのかな?でも、cygwinのlsもfileutilsで4.1だったからやっぱり違うかも。うん。違うな。emacsのコンパイルオプションとかが違うのかな。うーん、わからんな。
ってことでfileutilsを捨ててcoreutilsを入れて試してみたいな、と思いながらもwoodyにはcoreutilsのパッケージはリリースされてなさげ。こんなくだらないことでdist-upgradeするのもアレなんで、別の方法で対処しておく。
~/.emacs_bashに
unalias ls alias ls='ls -NF'
_ 今日の賄い
キムチうどん。思いっきり辛くしてみた。納豆パワーをもってしてもだいぶ辛い。トイレが不安。
_ 今日の禁酒日記
呑みませんでした。その代わりやたらと喉が渇いたので牛乳1本飲んだ。
alias を terminal の種類によって変化させるようにすればいいだけでは?
お。terminal毎にaliasって切り替えられるんですか?でも、そもそも切り替えたくないなぁ、というハナシなんですが。
--color=auto をつけたりはずしたりするくらいだろ。つーか、もともと Emacs 上では -color=auto があっても、色付かないよね? だから、切り替えることに何も問題ないのでは? 「切り替えたくない」の主旨が全くわかりません。
terminal 毎に切り替えるってのは、$TERM の返り値をみて emacs だったら、ls の option を変えるって事。<br>たとえば、<br>if [ "$TERM" = "emacs" ]<br> alias ls='ls'<br>else<br> alias ls='ls --color=auto'<br>fi<br>とかしてみるとどうよ? ってこと。
いや、言ってることはよくわかるのですが、--color=autoオプションで色がつかなくてちゃんと文字が表示される環境があるのに、woodyのemacs21は--color=autoをつけているとエスケープシーケンスがもりもりでて文字化けみたいになって嫌だなぁと。
$TERMの値を見てaliasを切り替えるくらいなら、emacs特有の設定ということで.emacs_bashに設定した方が設定ファイルがすっきりして好きだなぁ、と。
ふむ。Emacs の Version による問題じゃないとすると、shell.el の version は確かめた?
Red Hat の Emacs 上の Shell で、\ls --color=auto と明示的に option つけて ls をしても、ちゃんと表示される? (頭のバックスラッシュを省略しちゃだめよ。)