🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: fj.editor.mule
13 messages
13 total messages Started by akamatsu Thu, 03 Jun 1999 00:00
shell mode 行末の^M
#508
Author: akamatsu
Date: Thu, 03 Jun 1999 00:00
27 lines
1568 bytes
赤松と申します。はじめてこのNGに投稿します。よろしくお願いします。

コンソール上で muleの練習をしています。OSはRed Hat Linux 5.2Jです。
shell mode に入り manでテキストを表示させると、

WARNING:terminal is not fully functional^M

という警告が出て,その後manの内容を表示させると、すべての行末に ^M が
くっついています。
また、ls コマンドで、ファイル名を表示させると、ファイル名の前後に
^[[0m という文字列がくっつきます。

^Mの不具合については muleのFAQにシェルバッファの中では cshを使うように
と書いてありましたので、私はbashを使っていますが、指示のとおり .emacs に

(setq explicit-shell-file-name "/bin/csh")

を入れました。すると、^[[0mという文字列は出なくなりましたが、相変わらず
^Mはくっついています。

1.上記 WARNING の意味と、これが出ないようにするにはどうすればよいか。
2.^M がくっつかないようにするにはどうすればよいか。

ご存じの方、教えてください。

======
赤松
Re: shell mode 行末の^M
#509
Author: IIJIMA 'Delmonta' Hiromitsu
Date: Thu, 03 Jun 1999 00:00
74 lines
4032 bytes
いいじま@東大文学部です。

	fj.unix を追加します。

> コンソール上で muleの練習をしています。OSはRed Hat Linux 5.2Jです。
> shell mode に入り manでテキストを表示させると、
> 
> WARNING:terminal is not fully functional^M
> 
> という警告が出て,その後manの内容を表示させると、すべての行末に ^M が
> くっついています。
> また、ls コマンドで、ファイル名を表示させると、ファイル名の前後に
> ^[[0m という文字列がくっつきます。

	えっと、ls については、たぶん ls --colors=off で大丈夫なはずです。
	^M については、どこかに対策があったはずですが、私はちょっと覚えて
	いないので他の人のフォローを待ちましょう。

				☆

	まず、基本的なところから。
	コンソール画面では、色を変えたり、文字を表示せずにカーソルを
	動かしたり、その他いろいろと変わったことをしたいときには
	「特殊な文字列」を画面に出力します。

	たとえば、次のようなテキストファイルをつくって、素のコンソールから
	cat で表示させてみましょう。

		It's ^[[33mColor!^[[0m

	ここで、^[ と書いてある部分は C-q ESC で入力できるはずです。
	その後にもう一つ [ がつきますので注意。

				☆

	ls の出力について。

	Linux の場合、大抵は ls としただけで ls --colors=on が実行される
	ようになっているはずです。

	そうすると、上の例のように、色を付けたい部分を ^[[??m と ^[0m で
	挟むのですが、Mule がそれを解釈してくれないのが原因です。
	ですから、この対策は ls --colors=off です。

	#元記事の「bash から csh に変えたら ^[[0m が出なくなった」から
	#察すると、~/.bashrc に alias の設定があるのではないでしょうか。

				☆

	WARNING について。

	この「特殊な文字列」(エスケープシーケンスといいます)は、
	コンソールの種類によって微妙に差があります。そのため、あらかじめ
	環境変数 TERM にコンソールの種類を指定しておき、アプリはそれに
	応じて「特殊な文字列」を微妙に変更します。

		#「curses」をキーワードに調べてみるといいです

	ところが、Mule の shell-mode の場合は、この TERM の値が、
	素のコンソールの場合とは違った値になっています。もちろん、
	受け付けるエスケープシーケンスも素のコンソールとは差があります。
	この WARNING は、bash(それとも、man の下請けの less かな?)が
	「そんな名前のコンソール知らないよ」と言っているのです。

				☆

	対策は…私は shell-mode は使わないので、他の人にお任せします(^^;)
	
☆-- 飯嶋 浩光 ----------------------------------------------☆
|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 --☆
Re: shell mode 行末の^M
#510
Author: K.[NAO-NAO].Kawai
Date: Thu, 03 Jun 1999 00:00
12 lines
1232 bytes
かわい@きやのん

In article <37561838.7C3E536F@komaba.ecc.u-tokyo.ac.jp> IIJIMA 'Delmonta' Hiromitsu <g740564@komaba.ecc.u-tokyo.ac.jp> writes:

い>いいじま@東大文学部です。

い>	fj.unix を追加します。
い>> コンソール上で muleの練習をしています。OSはRed Hat Linux 5.2Jです。
い>> shell mode に入り manでテキストを表示させると、
mule/emacs の上の shell なら、term=dumb にしといた方がいいんじゃないかな。
manは、M-x man。
PAGER=cat とか。
Re: shell mode 行末の^M
#511
Author: KOSEKI Yoshinori
Date: Thu, 03 Jun 1999 00:00
49 lines
2826 bytes
>>>>> In <7j4okf$koe$1@rpnntp.aist.go.jp> 
>>>>> “赤松” = akamatsu@nrlm.go.jp (akamatsu)さん
赤松> shell mode に入り manでテキストを表示させると、

赤松> WARNING:terminal is not fully functional^M

赤松> という警告が出て,その後manの内容を表示させると、すべての行末に ^M が
赤松> くっついています。

それはですね、そんな poor な terminal で man (pager) を使っ
ちゃいかんということです。

M-x manual-entry

しましょう。

赤松> また、ls コマンドで、ファイル名を表示させると、ファイ
赤松> ル名の前後に^[[0m という文字列がくっつきます。

赤松> ^Mの不具合については muleのFAQにシェルバッファの中
赤松> では cshを使うようにと書いてありましたので、私はbashを
赤松> 使っていますが、

カラー表示させていますか?

~/.bashrc

if [ "$TERM" = "emacs" ]
then
   alias l='ls -alF'
   alias ls='ls -F'
else
   alias l='ls -alF --color'
   alias ls='ls -F --color'
fi

こんな感じで “shell-mode の時だけ色付けしない”になります。

shell-mode に ^M が付くのは .... えっと Mule の事は忘れまし
た。^^;;)

赤松> OSはRed Hat Linux 5.2Jです。

;; なんで Mule for Win32 や Maedow でもないのに ^M が付くの
;; でしょうね。不思議!
-- 
こせき @ Windows95/NT で XEmacs をコンパイルしよう!
http://www.NetLaputa.ne.jp/~kose/Software/compile/
kose@yk.NetLaputa.ne.jp
Re: shell mode 行末の^M
#514
Author: akamatsu
Date: Fri, 04 Jun 1999 00:00
39 lines
2542 bytes
お返事ありがとうございます。

い>        たとえば、次のようなテキストファイルをつくって、素のコンソールから
い>        cat で表示させてみましょう。
い>
い>                It's ^[[33mColor!^[[0m

^[[??m は色づけのためのエスケープシークエンスだったのですね。知りませんでした。

い>        #元記事の「bash から csh に変えたら ^[[0m が出なくなった」から
い>        #察すると、~/.bashrc に alias の設定があるのではないでしょうか。

たしかに、~/.bashrc に
	alias ls='ls -F --color=tty'
がありました。man ls で調べてみても、ttyの意味が分かりません。

い>        この「特殊な文字列」(エスケープシーケンスといいます)は、
い>        コンソールの種類によって微妙に差があります。そのため、あらかじめ
い>        環境変数 TERM にコンソールの種類を指定しておき、アプリはそれに
い>        応じて「特殊な文字列」を微妙に変更します。
い>
い>                #「curses」をキーワードに調べてみるといいです

どこを調べればよいのでしょうか?

い>        ところが、Mule の shell-mode の場合は、この TERM の値が、
い>        素のコンソールの場合とは違った値になっています。もちろん、

bash では TERM が linux となっていますが、mule shell(csh)では dumb に
なっています。この csh をカスタマイズすればよいのでしょうか。

い>        受け付けるエスケープシーケンスも素のコンソールとは差があります。
い>        この WARNING は、bash(それとも、man の下請けの less かな?)が
い>        「そんな名前のコンソール知らないよ」と言っているのです。

less から出ているようです。

========
赤松
Re: shell mode 行末の^M
#515
Author: akamatsu
Date: Fri, 04 Jun 1999 00:00
17 lines
1230 bytes
お返事ありがとうございます。

か> mule/emacs の上の shell なら、term=dumb にしといた方がいいんじゃないかな。

そうなっていました。

か> manは、M-x man。

mule shell ではなくて、これが本来の使い方のようですね。

か> PAGER=cat とか。

cat ですと、^Mがつかなかったような? いろいろやってみましたので
忘れました。manのPAGERがcatですと、逆スクロールできない?

=======
赤松
Re: shell mode 行末の^M
#516
Author: akamatsu
Date: Fri, 04 Jun 1999 00:00
40 lines
1689 bytes
お返事ありがとうございます。

>カラー表示させていますか?

させています。

>~/.bashrc
>
>if [ "$TERM" = "emacs" ]
>then
>   alias l='ls -alF'
>   alias ls='ls -F'
>else
>   alias l='ls -alF --color'
>   alias ls='ls -F --color'
>fi
>
>こんな感じで “shell-mode の時だけ色付けしない”になります。

いろいろやってみましたが、うまくいきませんでした。
"emacsが定義されていない"というエラーが出たと思います。
これができれば一番よいのですが。

>shell-mode に ^M が付くのは .... えっと Mule の事は忘れまし
>た。^^;;)
>
>赤松> OSはRed Hat Linux 5.2Jです。
>
>;; なんで Mule for Win32 や Maedow でもないのに ^M が付くの
>;; でしょうね。不思議!

Linuxでは付かないのですか。

私の持っている本には、(mule shell modeでは)
「エスケープシークエンスを使って画面を制御するコマンドは
表示に問題があり、あまり実用にならないでしょう」
と書いてありますので、深入りはしないことにしました。

=======
赤松
Re: shell mode 行末の^M
#517
Author: K.[NAO-NAO].Kawai
Date: Fri, 04 Jun 1999 00:00
9 lines
1187 bytes
かわい@きやのん

In article <7j88l2$fln$1@rpnntp.aist.go.jp> akamatsu@nrlm.go.jp (akamatsu) writes:

あ>From: akamatsu@nrlm.go.jp (akamatsu)
あ>か> PAGER=cat とか。
あ>cat ですと、^Mがつかなかったような? いろいろやってみましたので
あ>忘れました。manのPAGERがcatですと、逆スクロールできない?
だって、mule の buffer でしょ?
Re: shell mode 行末の^M
#518
Author: K.[NAO-NAO].Kawai
Date: Fri, 04 Jun 1999 00:00
13 lines
1264 bytes
かわい@きやのん

In article <7j89n7$cu9$1@rpnntp.aist.go.jp> akamatsu@nrlm.go.jp (akamatsu) writes:

あ>From: akamatsu@nrlm.go.jp (akamatsu)
あ>>shell-mode に ^M が付くのは .... えっと Mule の事は忘れまし
あ>>た。^^;;)
あ>>赤松> OSはRed Hat Linux 5.2Jです。
そういや、そもそもは、^M を、消すには?だっけ?
% stty -echo nl
でも、shell-mode で bash が edit 機能を持ったままだと
stty は多分効かないので、tcsh の 
% unset edit にあたる、command 行編集機能の off が必要かも知れない。
Re: shell mode 行末の^M
#519
Author: KOSEKI Yoshinori
Date: Fri, 04 Jun 1999 00:00
20 lines
2054 bytes
$B$A$g$C$H<ALd!#(B:-)

>>>>> In <37561838.7C3E536F@komaba.ecc.u-tokyo.ac.jp> 
>>>>> $B!H(BIIJ$B!I(B = IIJIMA 'Delmonta' Hiromitsu <g740564@komaba.ecc.u-tokyo.ac.jp>$B$5$s(B
IIJ> 	$BBP:v$O!D;d$O(B shell-mode $B$O;H$o$J$$$N$G!"B>$N?M$K$*G$$;$7$^$9(B(^^;)

shell-command $B$b;H$o$J$$$N$G$9$+(B?
command $B$r<B9T$9$k;~$O(B kterm$BEy!9$r;H$&$N$G$9$+(B?

$B$=$s$8$c!H(BEmacs$B;H$$!I$H8F$s$G$"$2$J$$!#(B:-p
	
P.S.

IIJ> $B!C(BIIJIMA 'Delmonta' Hiromitsu an der Universitaet Tokyo      $B!C(B

$B$:$C$HHSEh$5$s$O!H(BIIJ$B!I$NJ}$+$H;W$C$F$$$^$7$?!#(B:-p
-- 
$B$3$;$-(B @ Emacs $B$N%Z!<%8:n@.Cf(B
http://www.NetLaputa.ne.jp/~kose/Emacs/
kose@yk.NetLaputa.ne.jp
Re: shell mode 行末の^M
#604
Author: 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 --☆
Re: shell mode 行末の^M
#605
Author: Hiroki Tamakoshi
Date: Sat, 05 Jun 1999 00:00
14 lines
1157 bytes
こんにちは。
玉越@奈良先端科学技術大学院大学です。

akamatsu@nrlm.go.jp (akamatsu) writes:

> >カラー表示させていますか?
> 
> させています。

term-4.0.el というのがあって、色も付けてくれます。
http://www.msoft.it/pages/melgazzi/things.html

ちゃんと色が付くなあと思っただけで使っていないのでどう使うのかは分かり
ませんが、ご参考になれば。
Re: shell mode 行末の^M
#606
Author: IIJIMA 'Delmonta' Hiromitsu
Date: Sat, 05 Jun 1999 00:00
49 lines
3294 bytes
いいじま@東大文学部です。

	小関さんから直々にフォローをいただいて恐縮です m(_ _)m

飯嶋> 対策は…私は shell-mode は使わないので、他の人にお任せします(^^;)

小関> shell-command も使わないのですか?
小関> command を実行する時は kterm等々を使うのですか?
小関> そんじゃ“Emacs使い”と呼んであげない。:-p

	おそれいります(^^;)

	長いこと DOS 文化に浸っていたもので、Emacs は基本的にエディタ
	としての使い方を除いては dired くらいしか使っていません。
	コマンド入力は、ご指摘のとおり kterm を使っております。
		#console only の時は C-z で Mule を suspend する

	メールは、以前は mh-e を使っていたのですが、今は Netscape を
	使うか、kterm で imls %inbox のように入力しています。
	周りの人は Mew を使ってるん人が多いんですけどね。

	家では Windows+秀丸です。
	ニュースは OS に関係なく Netscape で読み書きしています(^^;)

	その割には私の ~/.emacs は 20kB くらいありまして、
	Signature に書いてあるサイトでは、
		○(setq auto-mode-alist nil)
		○(global-set-key "\C-x" 'next-line)
		○C-\ を押すと mode line の左端に [あ連カナ漢] と出てくる
			#[あ連R漢]ではない;「カナ」は実際には半角
	とか、いろいろ外道な事を紹介しています(^^;)
	DOS 系の人間にはけっこう好評です。

	#もちろん、外道でない(がそれほどメジャーでもないことが多い)
	#カスタマイズもたくさん書いていますが、やっぱり僕には王道は
	#プロに任せて横道をいくほうが性にあっている(^^;)

	進行に滞りがないよう週刊のメールマガジンとしておりますので、
	たぶん夏休みが終わる頃には私の ~/.emacs の全部を紹介できると
	思います。

	よろしければどうぞ(^^;)>>皆様

☆-- 飯嶋 浩光 ----------------------------------------------☆
|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 --☆
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads