Article View: fj.editor.mule
Article #604Re: shell mode 行末の^M
From: IIJIMA 'Delmonta' Hiromitsu
Date: Sat, 05 Jun 1999 00:00
Date: Sat, 05 Jun 1999 00:00
79 lines
4941 bytes
4941 bytes
いいじま@東大文学部です。
赤松> たしかに、~/.bashrc に
赤松> alias ls='ls -F --color=tty'
赤松> がありました。man ls で調べてみても、ttyの意味が分かりません。
手元にないので調べていませんが、「標準出力がコンソールのときだけ
色を付ける」という意味じゃないでしうか。
$ ls と $ ls | cat で結果が違うはず。
飯嶋> この「特殊な文字列」(エスケープシーケンスといいます)は、
飯嶋> コンソールの種類によって微妙に差があります。そのため、あらかじめ
飯嶋> 環境変数 TERM にコンソールの種類を指定しておき、アプリはそれに
飯嶋> 応じて「特殊な文字列」を微妙に変更します。
飯嶋> #「curses」をキーワードに調べてみるといいです
赤松> どこを調べればよいのでしょうか?
すいません、ここはちょっと不親切でしたね。
まず補足説明です。「アプリは…」と書きましたが、
これは各アプリのソースにたとえば
if (!strcmp(getenv("TERM"),"vt100"))
printf("\x1B[33m");
のように書いてあるわけではありません。
実際には、「どのタイプのコンソールでは、何をしたいときにはどんな
エスケープシーケンスを出力すべきか」というデータベースがあります。
昔は termcap というファイルがそれだったのですが、今は terminfo
という名前のディレクトリ(Solaris なら /usr/share の中だけど、
Linux ならちょっと別のところにあるはず)を使うのが常道です。
さらに、「terminfo を参照して、コンソールの種類ごとに適切なエス
ケープシーケンスを出力する」というライブラリが存在します。
たとえば、「カーソルを (3,4) に移動してください」という依頼を出す
だけで、TERM に応じた適切なシーケンスを出してくれるのです。
これが curses ライブラリです。
☆
というわけで、まず、man terminfo してください。
つぎに、www.goo.ne.jp かどこかの検索エンジンで、
terminfo とか curses とかいうキーワードで検索をかけてみましょう。
それから、これはあくまで参考ですが、「SunOS(Solaris)の kterm
上で lynx を走らせると日本語が化ける」という有名なトラブルの
対策法を検索エンジンで探してみると勉強になるかも。
#↑infocmp とか tic とかいうコマンドが出てきますけど、
#これは Solaris 以外でも使えるものなんでしょうか>>識者の皆様
飯嶋> Mule の shell-mode の場合は、この TERM の値が、
飯嶋> 素のコンソールの場合とは違った値になっています。
赤松> bash では TERM が linux となっていますが、mule shell(csh)では
赤松> dumb になっています。この csh をカスタマイズすればよいのでしょうか。
これは csh の責任ではありません。Mule が csh を呼び出す前に
わざわざ TERM=dumb に変えているんじゃないでしょうか。
#シェルを bash にしたままで、
#shell-mode を起動してみましょう。
まあ、Mule の shell-mode がエスケープシーケンスをまともにサポート
しているわけではなさそうです(*1)ので、あんまり shell-mode に期待は
できそうにないですね。
(*1)もしそういう「まともなサポート」があれば、Emacs 19 で文字に
色をつけられるようになったときに、色をつけるシーケンスくらい
即座にサポートできるはずです。私が開発者なら、少なくともゴミは
出さないようにします。
☆-- 飯嶋 浩光 ----------------------------------------------☆
|IIJIMA 'Delmonta' Hiromitsu an der Universitaet Tokyo |
☆-----------------------------------------------------------☆
|【宣伝】EmacsのVZ+ATOK+カナ入力化など外道カスタマイズの数々|
| http://user.ecc.u-tokyo.ac.jp/~g740564/emacs/ |
☆------------------------- g740564@mail.ecc.u-tokyo.ac.jp --☆
Technical Details
Message-ID:
<37580A0A.CCA4A98A@komaba.ecc.u-tokyo.ac.jp>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<7j4okf$koe$1@rpnntp.aist.go.jp> <37561838.7C3E536F@komaba.ecc.u-tokyo.ac.jp> <7j881t$dh2$1@rpnntp.aist.go.jp>Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: fdef0,e8b44c9f91ec2ca5 X-Google-Attributes: gidfdef0,public X-Google-Thread: 10eba4,960edecb89941853 X-Google-Attributes: gid10eba4,public From: IIJIMA 'Delmonta' Hiromitsu <g740564@komaba.ecc.u-tokyo.ac.jp> Subject: Re: shell mode 行末の^M Date: 1999/06/05 Message-ID: <37580A0A.CCA4A98A@komaba.ecc.u-tokyo.ac.jp> X-Deja-AN: 485737184 Content-Transfer-Encoding: 7bit References: <7j4okf$koe$1@rpnntp.aist.go.jp> <37561838.7C3E536F@komaba.ecc.u-tokyo.ac.jp> <7j881t$dh2$1@rpnntp.aist.go.jp> X-Accept-Language: ja,en Content-Type: text/plain; charset=iso-2022-jp X-Complaints-To: usenet@mail.ecc.u-tokyo.ac.jp X-Trace: news.ecc.u-tokyo.ac.jp 928516869 6122 133.11.171.228 (4 Jun 1999 17:21:09 GMT) Organization: Dept. Psychology, Univ. Tokyo Mime-Version: 1.0 NNTP-Posting-Date: 4 Jun 1999 17:21:09 GMT Newsgroups: fj.editor.mule,fj.unix