🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fj.editor.mule
Article #604

Re: shell mode 行末の^M

#604
From: IIJIMA 'Delmonta' Hiromitsu
Date: Sat, 05 Jun 1999 00:00
79 lines
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-mail
References: <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