トップページunix
1001コメント276KB

GNU screen その3

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2005/03/21(月) 07:24:04
前スレがdetachされたので再attachしますた

前スレ
screenってどうよ http://pc.2ch.net/test/read.cgi/unix/1001966406/
GNU screen その2 http://pc5.2ch.net/test/read.cgi/unix/1048030339/
GNU screen その3 http://pc5.2ch.net/test/read.cgi/unix/1087436430/
0082名無しさん@お腹いっぱい。2005/05/26(木) 11:30:42
putty + screen + emacs on FreeBSD で基本的には 256 使えてるんだけど、
tset しないと駄目みたい。

mlterm と kterm は非対応じゃないかな。手元ではどっかから拾ってきた(多分
xterm のおまけ) 256colors2.pl 走らせて確認してるけど.
0083名無しさん@お腹いっぱい。2005/05/30(月) 18:58:50
hardstatus のとこに各shellがどのマシンログインしているのかを表示することはできますか?
bash tcsh zsh のどれでもいいです。
0084名無しさん@お腹いっぱい。2005/05/30(月) 19:05:58
screen -t host ssh host
0085842005/05/30(月) 19:07:10
質問の意図を誤解している気がするから、もう少し詳しく説明して。
0086名無しさん@お腹いっぱい。2005/05/30(月) 22:16:29
>>82
言羊しく!

emacs 以前に、Putty 0.58 + 5.3R 上の screen (ports を
CONFIGURE_ARGS=--enable-colors256 で再コンパイル) にて
どうにも256色が出てくれません。
screen 無しだと 256color2.pl で256色出るのは確認出来て
いるのですが、何か思い当たることなどありませんか?

0087名無しさん@お腹いっぱい。2005/05/30(月) 23:45:18
>>86
俺も--enable-colors256でコンパイルしたけど、256表示されない。
エスケープシーケンスをダンプして見てみたら、^[[48;5;16mが
^[[416mに変換されていた。
0088832005/05/31(火) 00:29:10
>>84 >>85
screen@colinux | 0:28 05/05/31 | 0 tcsh 1* tcsh 2 tcsh 3 tcsh
となってるtcshの部分を、このマシンからsshしている先のホスト名にしたいです。
0089名無しさん@お腹いっぱい。2005/05/31(火) 00:35:22
>>88
シェル関数でsshのラッパーを書くのがいいかと。

ssh() {
    screen -X title $1
    command ssh "$@"
}
0090872005/05/31(火) 00:44:30
terminfoのputtyのsetaf, setabが正しくなかったようだ。
xtermから取ってきた
setab=\E[48;5;%p1%dm,setaf=\E[38;5;%p1%dm,
にしたら256表示された。
>>82はどのterminfo使ってるの?
0091822005/05/31(火) 11:19:07
FreeBSD なので termcap ですな。
env TERM=xterm-256color screen -T xterm-256color
とかしたうえで、.zlogin に
setopt noglob
eval `/usr/bin/tset -s`
unsetopt noglob
とか書いてる。試行錯誤なので正しいことやってる自信はなし。

けど、これだといきなり emacs を起動している screen だと tset が走らない
ので駄目ぽ。
0092名無しさん@お腹いっぱい。2005/05/31(火) 16:12:47
>>88
prompt に screen の title を書き替えるエスケープシーケンスを埋め込むっ
て手もある
0093862005/05/31(火) 21:55:13
>>91
むー、そうですか。同じようにしてもこちらではダメですねぇ。
env TERM=xterm-256color screen -T xterm-256color
だとむしろ悪化。Color cube, 6x6x6:、Grayscale ramp: 共に
なにも表示されなくなってしまいます。

ちなみに FreeBSD のバージョンはなんですか?
0094822005/05/31(火) 23:49:12
>>93
ちょっと今週は時間取れないのであまり詳細貼れないけど、FreeBSD は 4 系。
あと ~/.termcap に xterm のソースに入ってた termcap を置いてる。
必要かどうかは不明。切り分けは週末にでもやってみる。
0095名無しさん@お腹いっぱい。2005/05/31(火) 23:57:27
ちょっと聞きたいんだが、screen で 256 色使うってことは、
screen を立ち上げてる端末も 256 色に対応してないといけないんだよね?
0096名無しさん@お腹いっぱい。2005/05/31(火) 23:59:20
>>95
あたり前田
0097名無しさん@お腹いっぱい。2005/06/01(水) 00:20:39
>>93
screenの-Tオプションは付けなくていいです。

termcapでcoが256になっていることと、AFとABが
AF=\E[48;5;%p1%dm:AB=\E[38;5;%p1%dm:
のようになっていることを確認してください。

それが合っていたら、
env TERM=xterm-256color script
screen
256colors2.pl
exit
exit
として、typescriptでエスケープシーケンスを確認してみてくださ
い。
0098862005/06/01(水) 14:15:20
>>94, 97
ご助言ありがとうございます。
ようやく手元でも PuTTY + screen&emacs上で256色出るようになりました。
結局は termcap の設定でした。(97氏のAFとABは逆でした)

% echo $TERM
xterm-256color
% cat ~/.termcap
xterm-256color:Co#256:AF=\E[38;5;%p1%dm:AB=\E[48;5;%p1%dm:tc=xterm-xfree86:
% perl 256colors2.pl (256 OK!)
% screen
% perl 256colors2.pl (256 OK!)
% eval `tset -s xterm-256color` (もしくは setenv TERM=xterm-256color)
% emacs -f list-colors-display (256 OK!)
0099982005/06/01(水) 14:41:09
>>98
AFとABが逆になってたね。すまん。

screenの中でTERM=xterm-256colorにするのはよろしくないかも。
screenのCoとAFとABを書き換えた方がいいのかな。

ttp://eron.info/k/diary/2005/05a.html#06
に詳しく書かれていた。
0100名無しさん@お腹いっぱい。2005/06/01(水) 14:46:57
100!
0101862005/06/01(水) 22:02:53
>>99
なるなる。そちらのページは私も参考にしていました。
私が使う範囲では TERM=xterm-256color でも問題なかったのですが、
最終的に以下のようにしてみました。

~/.termcap
xterm-screen:Co#256:pa#32767:AF=\E[38;5;%p1%dm:AB=\E[48;5;%p1%dm:tc=screen:

~/.screenrc
setenv IN_SCREEN 1

~/.tcshrc
if (! ${?IN_SCREEN}) then
env TERM=xterm-screen screen -RR
else
eval `tset -s xterm-screen`
endif
0102名無しさん@お腹いっぱい。2005/06/03(金) 03:47:50
PuTTY0.58ごった煮 + screen + emacsで256色表示をやろうとして3日程頭かかえてます。
screenとemacsはFreeBSD 5.4Rで動かしています。ports treeは5月30日に更新してます。
今日、なんとかscreenで256色表示ができました。emacsではあいかわらず8色表示しかできません。
PuTTYでFreeBSDマシンにログインして順番にやってみました。
% echo $TERM => xterm
% less ~/.termcap => xterm-256color:Co#256:pa#32767:AF=\E[38;5;%p1%dm:AB=\E[48;5;%p1%dm:tc=xterm-xfree86:
% ./256colors2.pl => color cubeが256色で表示
% emacs -f list-colors-display => 16色表示
% eval `tset -s xterm-256color`
% echo $TERM => xterm-256color
% emacs -f list-colors-display => 16色表示
% screen
% less ~/.screenrc
term xterm-256color
termcapinfo xterm 'Co#256:pa#32767:AF=\E[38;5;%p1%dm:AB=\E[48;5;%p1%dm:tc=xterm-xfree86'
↑ここをxtermではなく、xterm-256colorとするとcolor cubeが16色になる。
% echo $TERM => xterm-256color
% ./256colors2.pl => color cubeが256色で表示
% emacs -f list-colors-display => 16色表示
% eval `tset -s xterm-256color`
% echo $TERM => xterm-256color
% emacs -f list-colors-display => 16色表示

上を参考にいろいろ.termcapや.screenrcなどの内容を変えてみましたがだめ。
% eval `tset -s xterm-256color` を実行する前は、envの値に、screen外ではTERMCAPすらなく、
screen内ではCo#8のまま変化していません。でもcolor cubeは256色で表示される。
tsetを実行した後は、TERMCAPに反映されます。
emacsでは、(load-library "term/xterm")を実行してみましたが変化なしです。
どないしたらええか、もう、さっぱりです。
screenでは256色が出ているだけに、emacsで256色がでないのはよけいにつらい。
<EOF>
0103名無しさん@お腹いっぱい。2005/06/03(金) 08:38:40
>>102
emacs のバージョンは?
0104名無しさん@お腹いっぱい。2005/06/03(金) 11:03:38
あ。そうか。
emacs-21.3_7
screen-4.0.2_1
です。よろしくです。
0105名無しさん@お腹いっぱい。2005/06/03(金) 11:32:03
>>104
emacs-21 は 256color に対応していない。
CVS Head の Emacs を使うか、自分で設定をするか。
ttp://www.nijino.com/ari/diary/?20021119&to=200211191S1#200211191S1
01061022005/06/04(土) 16:52:34
>>105
thanks! できました! うれしー!

portsからemacsを入れているので、最新版を別に入れると依存関係がめんどくさくなりそうなのでやめて、
上記のサイトにあるlispを利用しました。

~/.emacs から tty-color-256-define.el をloadするようにして、~/.zloginに
eval `tset -sQI xterm-256color`
を一行追加してみました。

それにしても、Emacs-21が256色に標準未対応とは盲点でした。
■ このスレッドは過去ログ倉庫に格納されています