GNU screen その3

このエントリーをはてなブックマークに追加
1ギレン総帥
GNU screenについて、どしどし語ってくれ

前スレ
screenってどうよ http://pc.2ch.net/test/read.cgi/unix/1001966406/
GNU screen その2 http://pc5.2ch.net/test/read.cgi/unix/1048030339/

screen参考リンク
GNU本家 http://www.gnu.org/software/screen/
でかいのネット http://www.dekaino/net/screen/
UnixUser2004年1月号記事 http://risky-safety.org/%7Ezinnia/screen/contribute2/
Screen Glossary http://zinnia.dyndns.org/~hiki/Screen/
公式ML(英語 たまにドイツ語) http://groups.yahoo.com/group/gnu-screen/
screen -X
:detach
:lockscreen
51 as ギレン総帥:04/06/17 13:34
うお また間違えた
×でかいのネット http://www.dekaino/net/screen/
○でかいのネット http://www.dekaino.net/screen/
:nethack on
>>5
おつ&ワロタ
Screen + rdic + w3m == 最強
>>8
w3mに限定する意味はあるのか?
Screen + rdic + mozilla == 最強
>>9
ま、lynxでもいいけどさ(w
screenとw3mの相性って悪くないですか?
ウィンドウの枠を広げたり縮めたりを3、4回続けたら落ちる。
別に。
ならないな。mouse 無効って点ではそう思うが
>>12
落ちるのはw3mですか?
screenの端末の大きさを変えるのは危険かもしれません.
skkfepをscreen内で起動しているときに端末の大きさを変え
るとscreenが暴走することがあります.
僕の環境ではw3mを起動して端末の大きさを変えても問題ありませんでした.
>>14
w3mではTERM=xtermなどにしないとマウスが有効になりません.
>>15
私の環境でもscreenの端末の大きさを変えるとCPU100%になって暴走することがあります。
端末の大きさを変えてすぐにキー入力を行うとそうなるみたいです。
こうなるとscreenもろともkillしないといけないので中で動いているプログラムもまとめてあぼーん。
でも大きさを変えたら1秒くらい待ってからなら大丈夫みたいです。
原因は依然として不明ですが、誰かわかる人いませんか?
>>14
termcapinfo kterm XT
も忘れないように。
1815:04/06/20 14:07
>>16
情報ありがとうございます.
キー入力だけで暴走しますか.
僕の環境ではそこまでひどくありません.
暴走するのは稀です.
1915:04/06/20 14:13
端末のサイズ変更とは関係ありませんが,
xbindkeysでscreenを操作していたときによく暴走しました.
暴走させすぎて管理者に怒られたので今はxbindkeysは使っていま
せんが.
~/.xbindkeysrc
"screen -X prev"    
  mod1 + h          
                     
"screen -X next"    
  mod1 + l          
ウチも大きさ変更で screen 暴走することあるけど稀だね。
大きさ変更で screen 上の w3m が暴走することはしょっちゅうだけど。
21mouse 無効:04/06/21 02:51
>>15,17
有効になりません。

% printenv TERM
kterm-color
% screen
% TERM=kterm
% w3m -B

で無効でした。
screen 起動前に TERM=kterm した場合も同様。
xterm (TERM=xterm) でも同様。

screen なしで
% echo '\e[?9h' ; cat
として(echo は zsh builtin で \e は ESC です)マウス・クリックしたときに
^[[M !!
とか出るんですけど、screen 中で同じことしても何も出ません。
これが出れば w3m の mouse も有効になるんでしょうか?
2221:04/06/21 02:52
% cat ~/.screenrc
escape ^]]
bind a paste .
bind ^a paste .
markkeys ^U=u:^D=d:^B=i:^F=f

startup_message off
vbell off

defflow off
hardstatus alwayslastline "%{bk}%-w%{g}%n* %t%{-}%+w"

termcapinfo xterm* XT
termcapinfo kterm* XT


% screen -v
Screen version 3.09.15 (FAU) 13-Mar-03
% w3m -version
w3m version w3m/0.5, options lang=
en,m17n,image,color,ansi-color,mouse,menu,cookie,ssl,ssl-verify,external-uri-loader,w3mmailer,nntp,ipv6,alarm,mark
% unamen, w3m 共に pkgsrc から入れたものです。
設定に不備があれば教えて頂きたい。
2321:04/06/21 02:56
何回もすまん。22 の最後の部分、失敗した。正しくは以下。
% uname -msr
NetBSD 1.6.1 i386
screen, w3m 共に pkgsrc から入れたものです。
設定に不備があれば教えて頂きたい。
2421:04/06/21 03:11
% echo '\e[?9h' ; cat
じゃなくて
% echo '\e[?1000h' ; cat
ですか? screen 中で無効になるのは同じでしたけど。
2517:04/06/21 03:18
>>21
うーん、おかしい。なんででしょうね。
screenのversion4出ていますよ。試しに使ってみては?

>>20
こちらの環境では大きさ変更でw3mが暴走することはほとんどないです。
横幅が短すぎて表示しきれないときにktermを最大化しています。

>>19
私も常時xbindkeysでscreenを使っていますが、それが原因で暴走した記憶はありません。
怒られたのですか、御愁傷様です。

>>18
私のところも暴走は極々稀です。いつも暴走してたらscreen使っていません。
> いつも暴走してたらscreen使っていません。
だな。
2721:04/06/21 04:46
>>25
有効になった。ありがとう。
% screen -v
Screen version 4.00.02 (FAU) 5-Dec-03
>>20
w3mのバージョンは?ウチは0.4.1+asyncです。
0.5を試したところ、半カナがうざい上にたまに挙動不審になるから0.4.1に戻しました。
暴走することなく非常に安定しています。
>>20>>28
おれんとこはw3m-0.5.1だけど全く問題ない.
今までもw3mが暴走したことは一度もない.
多分にcurses周りの問題があるだろうに、環境を明示せずに暴走暴走いうのって…
>>30
screenってcursesは使ってないだろ.
screen-1 localhost zsh
screen-2 localhost emacs
screen-3 localhost w3m
screen-4 screen-1@remoteA emacs
screen-5 screen-2@remoteA tail -F /var/log/messages

って可能ですか?無理だったら 4 と 5 は別 session でもいいです。
モバイルな端末での利用を想定してまつ。
>>32
分かるように書けよ
>>32
可能.全く問題ないと思うが.
>>33
わからないんですか?
screenが固まるときの原因、もしかしてfifoがデッドロックを起こしたのでは?
3732:04/06/22 05:02
>>34
Command-4 とすると remoteA の screen-1 を,Command-5 で同じく remoteA の screen-2
を開くようにしたいんですが、どうすればいいんでしょう。

Command-4 で "ssh remoteA screen" というプロセスを飼うだけでは駄目ですよね?
3834:04/06/22 09:10
>>37
君のやりたいことがよくわからんが,これじゃだめなのか?
C-a 4
ssh remoteA
screen -x
screen -X select 1
C-a 5
ssh remoteA
screen -x
screen -X select 2
3932:04/06/22 09:41
>>38
なるほど、おっけーです。
そうか、-x を併用すればいいんですね。気づかんかった。
ありがとうございます。
それは screen ではなく window だ
おまいらscreenで何個のwindowつかってる? 漏れは20〜30ほどだが。
内訳:Emacs 1つ、各種スクリプト多数、w3m多数
>>41
20〜30って,やりすぎだろ.
おれは10
ジョブ使ってるので3-5かな。
>w3m多数

タブがあるのに…
4541:04/06/24 13:14
あと、zsh1〜3個というのを忘れておった。

>>42
多い方とは思っていたけど、やっぱやりすぎですか・・・

>>44
当然タブも併用。だがタブが多すぎて見辛くなったので今では用途別にプロセスをあげている。
w3mのタブよりscreenの方が好き
同じような機能がいくつもあっても操作が混乱するし
おまいらすごいな。ついていけねー。
漏れはマジックナンバー 7 以上になと管理し切れなくなる。
あんまり多いとメモリロードの無駄だと気づかないんだろうか…
4941:04/06/24 14:28
>>48
それでもscreenが占有しているメモリはたかだか28MB。
スクロールバッファとかいろいろあるから仕方ない。
るびきちの臭いがする
ワロタ
使ってないのなら無駄だろうが使っているのなら無駄じゃないだろ
要るときに増やせばいいだろ。
モニタリングするのがそんなに多いのか?
と men64MB の言。
10個以上も開いてる人はどうやって起動してますか?
もう起動させっぱなしなのかな?
10個以上も開いてる人はどうやって切り替えてますか?
>>54
~/.screenrcに起動するコマンドが書いてある
screenの起動は平均すると10日に1回ぐらい
>>55
alt-[0-9]で0から9
ctrl-[0-9]で10から19
>>54
56と同じく。zombieの設定もしているので氏んでも復活可能ですよ。

>>55
0で10、shift-[1-9]で11〜19、shift-0で20。他は適当なキーにバインド
俺は多くても window 5〜6こぐらいだもんで next をワンキーにバインド
5956:04/06/25 07:48
>>57はC-aの後にshift-[1-9]だよね.
おれは直接alt-[0-9]
ctrl-[0-9] とか ありえねー
X上でしか使えないじゃねーか
>>59
bindkeyですか。あたしの場合はalt-[0-9]は他で使っているのでダメ。

>>60
xbindkeysで設定しているのかもしれないわね。
6259:04/06/25 08:17
>>60
X使えばいいじゃん.
>>61
ctrl-[0-9]はmltermで^[[4[0-9]~を吐くようにしてる.
63ギレン総帥:04/06/25 08:39
sshした先でscreenを動かしてこそ華!
Xでしか使えぬキーバインドなど無粋である
>>63
teratermでもできるよ.
>ctrl-[0-9]はmltermで^[[4[0-9]~を吐くようにしてる.
screen上でsshして、更にscreen使ってるんだけど prefix keyが、もうわけわからん (゚∀゚)アヒャヒャヒャ
>>65
それは別端末にした方が良いと思われ.
それか,prefix変えるか.
ratiposon + screen + ssh + screen + ssh + screen、これ無敵。
ラチポゾン マンセー
ワラタ
ratiposon + rpws + screen + emacs-nw + windows.el + ssh + screen、これ無敵。
らちぽ
screen使いならelscreen.elの方がよくね?
>72 タブ無しで使ってますがなにか?
あたしはelscreenやescreenよりも先にwindows.elを知ってしまったからね。
何といっても状態を復元できるのが嬉しいわ。
ratiposon??
76名無しさん@お腹いっぱい。:04/06/26 00:34
screenってときどきハングアップしない?
topしたらscreenが99.9%で死亡中になる。
過去レスも読まずにageる人
>>76
ごくまれにそのようにハングアップする。抜本的な解決方法はないものか。
>>78
原因を特定し、修正する。
>>79
なるほど。ありがとうございました
ポストして還元してね
特定 window を next コマンドで巡回しないようにってできます?
あたしはあんまりnextとか使わないわ。直接番号で指定してるの。
hardstatus lastline "%f%n:%t|%LW"
してるから番号で指定するのも苦じゃないわね。
>>82
巡回したくないwindowに対して:number 20とかして大きな番号に変えるしか思いつきません。
:at the-window-name number 20
>>84
それでも next で巡回しちゃうよ。
>>85
そりゃ最後の方で巡回しちゃうけど、番号が若いうちは巡回しないということ。
>>76 の状況に Screen version 4 でなった人おる?
8878:04/06/26 15:08
>>87
俺だ
>>87
直ってません.
閑古鳥状態なので話題投下。
おまえら、screenで何を動かしている?
俺はシェル、emacs、w3m、rdic、tail -f、topだ。
>>90
メーラに一枚、残りは特定の用途を決めずにシェルが 4〜5枚。
いまんとこ
mew, zsh, navi2ch, IRC, emacs, emacs, emacs, w3mの8枚
>>92
なぜ emacs buffer を有効に使わないのか問い詰めたい
zsh zsh zsh chalice vim w3m
>93
そんなのユーザーの自由だろ...
zshx10
1枚は汎用で,あとはsshとかそのときにあわせて特定用途だな
emacs, mew, ircはscreen外
emacs の IRC client は elscreen と相性悪い気味なので別に
起動してるなあ。
IRCする相手居ない(ノд`)
>>97
うちは Navi2ch と Riece を ElScreen で同居してるけど、特に問題無いなあ。

screen 内で ElScreen って最初は混乱するんだけど、慣れると快適。
>>99
rieceって起動してからwindow resizeすると落ちない?
screenの問題じゃないと思うけど、screenの中で使っててそうなるので気になってる。
10199:04/06/29 15:07
>>100
Emacs の問題だと思う。
以前 Emacs スレでも報告したけど、 irchat-pj や liece でも落ちる。
>>101
報告って、どこすか?
10399:04/06/29 15:19
ちょっと今試してみたけど、
C-z でサスペンドしてからターミナルサイズを小さくして fg しても落ちるね。
screen 関係ない。
10499:04/06/29 15:20
>>102
Emacs スレ。
>>104
Part いくつのどのレスすか?
10699:04/06/29 15:33
>>106
あ、どうもす。
>>92-96
やはり screen とか使ってる奴は zsh なんだな。匂いが似てるのだろうか。ワラタ
俺も screen + zsh。
ふつー scsh
そりゃ最強のシェルですから。
俺もzsh+screenだけど、普通に高機能&便利だから。両方とも。
正直、zshの機能を如何なく発揮させていないがzsh+screenだよ漏れも
11391:04/07/01 05:06
>>108
漏れも Zsh だ。

しかし、screen ユーザって、みんな貧弱な wm とか使ってたりして、
リソースをしみったれて貧乏臭くやりくりしてるのかと思いきや、
Zsh やら Emacs いっぱい立ち上げたりとかしてて、
意外と富豪的な使い方してるのが多いのね。
ターミナル内に収まる限りにおいて出来るだけリッチに
zsh, screen, evilwm...
>>115
もれも
zsh, screen, evilwm
zsh, screen, 鼠毒
tcsh, screen, 異音
119名無しさん@お腹いっぱい。:04/07/01 08:39
皆にscreen勧めてるんだが、どうしても便利さを理解してもらえない。
この星には、screenに何か感じる人と感じない人の2種類の人間が住んでいるのだろう。
ksh, screen, ノコギリエイ
今はリソースがたっぷりあるから平気でktermを何枚も立ち上げるんじゃないの?
kterm なんてもう使ってないけどな。
stwm, screen, zsh, kterm
kterm 何枚も立ち上げてますが、screen も使ってますが、何か?
まあぶっちゃけ、メモリが余ってりゃ何でもいいんだよな
StumpWM, screen, zsh, kterm
tcsh, screen
Xnest, ion, mlterm, ksh
アンケートで1000を目指すクソスレ
screen に付けるオプションでお気にいりのを教えれ
そう思ったらさらっと別のネタを振るのが大人ってもんだよ
頻度高いのは-Xかな。
gvimから「あれやっとけ」「これも頼む」と指令を飛ばす
screen -X eval ほにゃらら ほげほげ
.bash_profileにscreen -R
screen -X windowsの結果をstdoutに落とせればなぁ。鼠毒みたいに。
>>135
たしかに, その点はratpoisonは優れているよね
それさえあればスクリプティングの幅はかなり広がるというのに、勿体ない。
だれかhackした人いる?
鼠毒はScreenに似ているから、Screenのノウハウがいろいろ生きる。
ratpoison でのその機能にはどんな利用方法があるの?
139鼠毒:04/07/02 03:19
windowsについてもこれだけ。
* 特定の名前のwindowが存在するか否かがわかる。これが大きいと思われ。
* windowの総数がわかる。
* window idがわかる。
* windowにアクセスした順番がわかる。

fdump/frestoreは状態をstdoutに書き出す機能を使ってこそ真価を発揮する。

また、interactive modeとnon-interactive modeが存在する。
まえスレで提案したんだけど (select) のときに各 window で常駐してる
jobs を表示したり window 間で job のやりとりしたりできたらなぁというのが未だ保留。
よーわからんけどjobのやりとりはshellによって個別に対応しないといけないんじゃない?
俺ならjobはつかわずに新しいwindowあげちゃうな。
>>141 いや、そうだけど表示だけでも自由裁量があればいいなと・・・screen だし・・・
>>142 まぁそれもそうなんだけど・・・習慣的に裏で仕事さしたりしてしまうので(^^;

あと基本的なことで恐縮なのですが (windowlist -b) のときに
Num Name と Flags との間に何か――例えば window name とか――表示させるには
どうすれば良いのでしょうか?
>>143
直接の解じゃないけど、定期的に全 window をスキャンしてプロセス名によって
window 名を変更するのは可能じゃないかな。
windowlist string '%3n %f%t'
backtickを使えばできるのかな、もしかすると。
>>146
>screen -X windowsの結果をstdoutに落とせればなぁ
これのこと?
backtickはステータスラインに書くだけだから無理だと思うが.
backtickのおもしろい使い方してる人いないものか。
notify目的だったらechoで十分じゃねーの?
biffもガイシュツだったようね。
windowlist string '%`'
ならbacktickが使えるぜ。
screenをutf-8で使うにはどうすればいいでしょうか.

cat>hoge<<EOF && LANG=ja_JP.utf8 screen -c hoge
defencoding utf-8
defutf8 on
hardstatus alwayslastline "%D"
EOF

このように起動するとステータスラインの曜日の表示が化けてしま
います.

redhat9 screen 4.0.2 mlterm 2.7.0 です
どういう化け方をするのか?
他の方法で utf-8 自体は表示できているのか?
ja_JP.utf8 で正しいのか?
>>151
ステータスライン以外は化けません.
>>150のように起動したscreen内のシェルで
$ screen -X echo あああ
とすると, ステータスラインに………のように表示されます.
ja_JP.utf8はlocale -aで出てくるので正しいと思います.
>>150
.screenrc で
defencoding utf-8
defutf8 on
しても化けるんだよな。なんでだろ。とりあえず screen -U で起動して無問題だけど。
encodingでwindowごとに指定できるよ。
普段はeucとかにして、utf8をどうしてもつかわないといけないときのみそのwindowのみutf8にすればいいだろう。
普段は utf-8 にして、euc-jp や sjis をどうしてもつかわないといけないときのみその window の encoding を変えてる
98へぇー
157152:04/07/03 10:11
>>153-155
みなさんは>>150>>152で化けないのですか?
>>150に-Uを付けて起動しても化けます.
>>150
env LC_TIME=C screen -U
159157:04/07/03 11:47
>>152
それで直るのですが, 曜日が化けるのは一例であって, 根本的な解
決にはなっていないです.
160157:04/07/03 11:47
>>152ではなくて>>158
>>159
mlterm のバグってことはありませんか?
162157:04/07/03 12:17
>>161
化けるのはステータスラインだけですし, gnome-terminalでも同じ
結果になったのでmltermは問題ないと思います.
>>162
RedHat9 のバグってことはありませんか?
164157:04/07/03 12:24
それはわかりません.
みなさんの環境で再現できないならそうかもしれません.
世界中の人が利用しているScreen Wikiってないかしら?
そういうサイトがあれば変わった設定も見付かると思うのにね。
なければつくればいい
167名無しさん@お腹いっぱい。:04/07/05 05:17
世界中の人が screen -X できる Screen サーバ…
169i686DX8:04/07/07 01:28
>>143
Screenそのものを多重化されたシェルだと思えばいいわ。
そう考えるとwindowが単一シェルにおけるjobに相当するはずよ。
このすれに zsh 使いが多いのは、
shell にこだわりだすと、
tcsh -> zsh
bash -> zsh
のどっちかで、ほかに選択肢はないからでは。
めんどくせぇからzsh
172i686DX8:04/07/08 10:57
某氏の「tcshなんてうんこ」発言でzsh使いになったわ。あれは強烈だったね。
別にこだわらないからtsch
screen でコピーした文字の履歴をとることはできますか?
できればテキスト形式のファイルに保存して、
sed なんかで編集したいのですが。
>>174
bind ^[ eval writebuf "exec sh -c 'echo|cat /tmp/screen-exchange - >> log'" copy
この方法ではコピーしたものをすぐに保存することはできない
>>174-175
bindkeyとexecを組み合わせてもう少しスマートなものを作ってみた
.screen-historyにコピーバッファの履歴がたまる(はず)

ファイル数が多いのでtarballにした。
ftp://www.dekaino.net/pub/screen/screen-history.tar.gz

ちなみにscreen4.x用
乗り換えるのすら面倒なのでbash
>>176
コピーしたものをすぐに保存することはできるが, 全然
スマートではない気がする.
引数なしのteeって何の意味があるの?

それと展開したらドットファイルをぶちまけるのはやめてくれ.
179i686DX8:04/07/09 02:49
screenでキーボードマクロを実現した人いないかしら。
rectickを見てると、実現できそうな気がするのよね。

>>176
かなり面白いわ。まだまだあたしの知らないことも多いね。

180176:04/07/09 05:43
>>178
> コピーしたものをすぐに保存することはできるが, 全然
> スマートではない気がする.
確かにそうかもしれない

> 引数なしのteeって何の意味があるの?
一般に catよりteeの方が圧倒的に小さく軽い
K&R styleで書かれてるscreenにはお似合いの古きtipsである

> それと展開したらドットファイルをぶちまけるのはやめてくれ.
私が言うのもなんだが、中身を確認せずにいきなり展開するのは止めとけ
181176:04/07/09 05:53
>>179
bindkey -t [key-sequence] stuff [macro-string]
でキーボードマクロの真似事ができるよ abbreviateモドキも可能

たとえば
bindkey -t ^t0 stuff DO_MACRO
って .screenrcに入れておくなり、^a: で手入力してから
^T 0 とキー入力すると MACRO とキー入力したのと同じ効果になる
^Tの次の入力が 0以外なら マクロ展開されずそのまま解釈される

詳しくはmanpage参照してくれ
182i686DX8:04/07/09 08:22
>>181
情報ありがと。stuffは知ってるし、すでに多用してるわ。
あたしが気になるのは、Emacsのキーボードマクロの真似ができないかということよ。
^A(でマクロ定義開始、^A)でマクロ定義終了、^Aeでマクロ実行ができたら・・・。
実際に操作しながらマクロ定義がしたいの。不可能ではないと思うわ。
183i686DX8:04/07/09 08:23
>> それと展開したらドットファイルをぶちまけるのはやめてくれ.
>私が言うのもなんだが、中身を確認せずにいきなり展開するのは止めとけ
きゃははw
>>182
> ^A(でマクロ定義開始、^A)でマクロ定義終了、^Aeでマクロ実行ができたら
今のscreenにはinput sequenceを記録する機構がないのでコレはちょっと無理そう。
screenを改造するか、screenとttyの間にエージェント置くかする必要があると思う。
# ひょっとすると実際に女性なのかもしれないが、女言葉よしてほすぃ。
>>185 女言葉の記事の大半は中の人がオサーンなんだよ。
187名無しさん@お腹いっぱい。:04/07/09 11:01
こういうバインドを使うと
bind e colon 'screen '

:screen _

こんなふうに入力待ちになりますが、入力した文字を↓こういう風に使う
にはスクリプトを使うしかないのでしょうか(mbox_nameの部分だけ入力)。

:screen -t mbox_name mutt -f =mbox_name

いまは -t以降を入力して使っています。
>>184
filterがあるじゃないですか.
>>187
意味がわかりません.
たぶん >>187は mbox_nameを2回手入力するのが苦痛だって言いたいんじゃない?
190184:04/07/09 13:43
>>188
filterって何?

screenのexecコマンドのfdpathの切り替えで実現するinput filterのことなら
tty入力をscreenで処理した後のものしかapplication-processに渡らないはず。
つまり、screenを制御するキーシーケンスはscreenに喰われてしまう。
それに特定の窓に張り付いて、screenセッション全体へのキー入力は捕捉できない。

staffコマンドは screenが処理する前のinput queueにつっこめるのがキモだから
execコマンドで起動したsnoopプロセスで捕捉したキーシーケンスを元にするんでは
なんかイマイチつまらない気がするね。
それとコマンドキャラと同じ文字がマクロ文字列に混じると混乱しそう。
191i686DX8:04/07/09 14:48
>>185
了解しますた。
>>186
97へぇー
>>190
rectickでキー操作の履歴が表示できるから、なんかできそうな気がするの。
キモヲタよりも希少価値あり >ネカマ以外のunix♀
193i686DX8:04/07/09 15:02
ったくもぅ、♀だと言ったらネカマ疑惑?やんなっちゃう。
匿名掲示板で何のために自分の性を言わねばならんのかが謎。
だからわざわざ女と名乗るヤシは常にネカマと呼ばれる。

アンタの性別なんか関心ないから黙っとけってこった
screenと関係ない話は他所でおねがいします
気にしなければいいんじゃないかな
そして誰も性別を公言してはいないような
>>194
197196:04/07/09 23:51
悪いね >>195
さすがw3mの人気の高いscreenスレだけのことはありまつね
>>198
ふつーnavi2chとか使ってるだろ
200!
これって女言葉のつもりだったのか
202i686DX8:04/07/10 03:27
さあ、screenの話の続きしようよ。
うちのLinux機のuptimeとscreenの稼働時間はいつも一緒だ
バブー
ぼく三歳でちゅう。
screen は五年近く使っていますが、最高ですね。
オレは12年前からscreenを使ってるぞ
yahooへ(・∀・)カエレ!!
207i686DX8:04/07/10 14:28
>>203
あたしんとこもそうよ。
>>204
矛盾してるねw
>>205
そのときのバージョンはいくつだったの?
208205:04/07/10 14:41
>>207
そんな昔のことは覚えないなぁ
昔のバックアップデータを調べてみたら、1994年10月頃は 3.5.2だったらしい
>>182
こんなかんじか?
screen -X bind '(' exec '.!' record_macro
screen -X bind ')' eval kill "readreg m /tmp/macro"
screen -X bind e process m

cat record_macro
#!/bin/sh
stty raw -echo
tee /tmp/macro

>>190
たしかにこの方法ではscreenのコマンドキーが記録できなかったり、
1つのウィンドウでしか記録できない。だけど、マクロって1つのウィ
ンドウで完結するものが大半じゃないか?
210i686DX8:04/07/10 17:00
>>209
わぁ〜、すごい!! ありがとう。
killがきになって改めてmanしてみたら、execコマンドからkillされるんだね。
>>210
たしかにkillはちょっと怖い。フィルタが無かったらシェルが終わ
ってしまう。フィルタだけkillするコマンドがほしい。
212i686DX8:04/07/10 17:44
>>211
ってゆーか、filterは1つしか持てないからね。
ダミーのfilterを作成すればfilterのみをkillすることが保証されるわね。
record_macroが動いているときはsleep 1が実行されずにrecord_macroがkillされる。
動いていないときはsleep 1が実行されて即座にkillされるのよ。
それをふまえると、こんなんでどうかしら?

screen -X bind '(' eval "exec '.!' record_macro" "echo 'Defining kbd macro...'"
screen -X bind ')' eval "exec sleep 1" kill "readreg m /tmp/macro" "echo 'Keyboard macro defined'"
screen -X bind e process m
>>212
なるほど。それはいい。

マクロにC-Cが入っているとなぜかうまくいかない。
例えば、
C-A:stuff ^cls^m
シェルが動いているウィンドウでこれを実行すると
%l
%s
zsh: command not found: s
このようになってしまう。
>>209
それでは、コマンドキャラが含まれた場合うまくいかないんじゃない?

たとえばデフォルトのコマンドキャラが^Aの場合、^Aaで bashの行頭移動する操作を
含むシーケンスをマクロ化すると大変なことになる

コマンドキャラを^Zにしても、サスペンドする操作を含めるとダメ
215i686DX8:04/07/10 18:27
>>214
あっ、ほんとだ。screenがらみの操作には未対応のようね。
あたしんとこではコマンドキャラが^[だから大丈夫かなぁ。
でもでもっ、w3mなどキーボードマクロ機能を持っていないコンソールアプリにキーボードマクロ機能が追加されたと思えば十分収穫あるわ。
>>215
^[を含むシーケンスがうまく動かないと viや emacsで困るのでは?!

emacsの場合、metaキャラをMSBを1にする設定にすればなんとかなるか?
でも M-ESC とかで困るか… やっぱダメじゃん
217i686DX8:04/07/10 18:43
あ、間違ったわ。escapeは^]ですっ。ESCじゃないよー。
^]が使われているのは telnetのエスケープキャラと
emacsの abort-recursive-editぐらい?
>>218
vimでも使いますよ
220i686DX8:04/07/10 19:23
M-x where-is abort-recursive-editしてみると
abort-recursive-edit is not on any key
と出たよ。それにイマドキtelnetなんてねぇ・・・
>>214
たしかにその問題はある。
それと時間情報が記録されていないからESC, hがM-hになってしまう。
>>220
あんたの環境が変じゃないか? 自分で潰してるとか。
C-]と C-x X a にバインドされてた @ 21.3.50
素直にscreenにキーボードマクロ機能加えたほうがスマートだろうな。
>>223
いや、キーボードマクロを実装したttyのwrapperを作って
その中でscreenを起動した方がずっと素直っぽい。
/usr/bin/scriptが、C言語でソース行数300ないくらいだから楽勝だろう。
そしたら screenに関係ない話になっちまうけどな。
>>220
すれ違いだが オレはかなり頻繁にtelnet使う
さすがに23番ポートで使うことはまずないけどな

たとえば
telnet smtp_server 25 とか telnet http_server 80 とか
telnet nntpserver 119 とか telnet irc_server 6667 とか…
226i686DX8:04/07/10 20:57
>>225
あっ、そうか。その手があったかー。
>>224
たしかに、screen使わずにptyのフィルタ作ればいいんだよね。
screenのフィルタは起動終了が簡単、backtickを使えば付加情報が
表示可能ってところが利点だと思う。それを利用したrectickとか
screen-uimはいいアイディアだと思う。他に何かいいアイディアな
い?
228i686DX8:04/07/10 21:46
キーボードマクロ等のfilterを起動してると他のexecが使えないという問題なんだけど、
execのかわりにbacktick 0 0 0を使うと起動できるよね。
>>228
たしかに代わりになるね。サンキュ
230名無しさん@お腹いっぱい。:04/07/11 00:31
screenってXとは違うんですか?
粗悪な餌だな
232i686DX8:04/07/11 07:21
おはよー。今日もscreenしよっ! みなさんの設定ファイルの行数は何行なの?

$ egrep -v '^#|^$' .screenrc |wc -l
203
% egrep -v '^#|^$' ~/.screenrc |wc -l
21
% egrep -v '^#|^$' .screenrc |wc -l
74
% egrep -v '^#|^$' ~/etc/screen/* |wc -l
153
どっかの.zshrcみたいに狂気を秘めた数千行の.screenrcを持つ兵が
一人はいそう。
> find ./ -type f |xargs grep "名無しさん@そうだ選挙に行こう"
>狂気を秘めた数千行の.screenrcを持つ兵
かっこいいかも
>>193
(実は「証明のため画像をうpしる」の方向に持っていきたいだけ……)
240名無しさん@そうだ選挙に行こう:04/07/11 10:11
>>239
screenと関係ない話は他所でおねがいします
% egrep -v '^#|^$' .screenrc |wc -l
9
242名無しさん@そうだ選挙に行こう:04/07/11 12:10
% egrep -v '^#|^$' .screenrc | wc -l
egrep: .screenrc: No such file or directory
0
>>242
おいw
>>242
○ egrep -v '^#|^$' ~/.screenrc |wc -l
× egrep -v '^#|^$' .screenrc |wc -l
% egrep -v '^#|^$' ~/.screenrc| wc -l
31
だいぶ余計な設定をしてると思ってたのに、そんなに多い方じゃないのか。
screen の tips 集めた Wiki とか無いかな?るびきち抜きで。
行数だけじゃなくて、変わったことしてたり特徴的な個所とかは見せてほしい。
晒してプリーズ。
248i686DX8:04/07/11 15:08
>>246
http://zinnia.dyndns.org/~hiki/Screen/
ここがあるじゃん。
>>238
ttp://www.dotfiles.com/files/4/377_.zshrc
こんなんだぞ。カッコいいか?
俺は、これみて「あぁぁぁぁ」とディスプレイの前で呟いてしまったぞ。
中央の半分ぐらいを見なかったことにすればそれなりに便利そうなこと
やってるんだけどな。

http://www.dotfiles.com/index.php3?app_id=18
を見てみるとscreenrcも幾つかあるね。
execのフィルタで^[[5nとか^[[6nのレポートを要求するエスケープ
シーケンスを吐くとウィンドウの方にレポートが行ってしまう。
例えばこんなかんじ。
C-a:exec cat
^[[5n^D  #ここでシェルに^[[0nが行き、ベルが鳴る

ansi.cのReportを直せばいいと思うが、よく分からない。誰か直し
てください。
251i686DX8:04/07/13 15:38
>>249
screenrc見てみたけどあまり目新しい設定はなかったわ。
あたしも行数が多いだけで大したことはやってないの。
bind多数、register多数ってところよ。
自分の設定に目新しいものが無いことを報告するスレ。
なぜか C-l " な俺。
execフィルタは入力が1つしかないから、
cocotのような入出力フィルタが作れない。
3番にもう1つ入力があればいいのに。
入出力が同時に必要なフィルタってなにかある?
それより複数のフィルタを同時に扱えるようにした方が汎用性があると思う
>>255
だからcocotだって
まあ確かに複数のフィルタが使えたら便利な場合もある
257i686DX8:04/07/14 19:42
ねーねーみんな、どんなフィルタ使ってるの?
>>257
さんざん話出しといて実は使ってない。
backtick 0 0 0で代用できるものだけ。
259i686DX8:04/07/14 21:17
そうなの? なんかフィルタの使い道ってよくわからないんだよねぇ。
あっ、この前のキーボードマクロ、w3mで定型的操作をするときにすごい威力を発揮したわ。
>>259
w3mで定型的操作ってどんなの?
screenのステータスラインにwindow名を表示させているけど、10を越えると
二行に渡って表示させる方法ってありませんか?
window多くなると画面から溢れてしまいます。

terminalを二つ開いて、windowを10ずつ使うしかないのかな。
ステータスラインうんぬんは別にしても、複数の端末エミュレータをあげて
screen -x で同じセッションとつなぐことは、超オススメです
>>261
ステータスラインは2行にできないけど、caption alwaysを使えば
できると思うよ。
>>256
cocot も入力側と出力側の変換は完全に独立してるのでは?
cocot 使ってないから違ってたのならすまん。(screen 自体が encoding 変換機能持ってるから)
>>262
確かにすごく便利。ただし、
bell ""
しとかないと、ベルが鳴ったときにレスポンスが落ちてしまうのは注意したほうがいいかな。
>>264
1つのプロセスで入出力フィルタを作ろうとすると
入力fdが2ついる、ということです。
>>266
入出力が独立しているのなら一つのプロセスである必要はない、ということなんだが
268i686DX8:04/07/15 03:30
>>261
そうなんだよね。まいっちゃうわね。
あたしの場合、window名を短くしてなるべく多くのwindow名を表示できるようにしてるわ。
87桁で11個分表示できてる。
よく使うwindowには小さい番号を、あまり使わないwindowには大きい番号を割り当てることね。
>>263
caption alwaysにしてるけど、他の用途にcaptionを使ってるのよね。何に使ってるかはヒミツ☆
>>262,265
その理由教えて〜。あたしは端末ひとつしか開いていないのよ。
過去にやってみたことあるけど、気がつくと双方のscreenが同じwindowになっちゃってやめたの。
>>258
っていうことは、screen -Xなスクリプトとかだよね。
>>260
たとえば、JavaScriptを含むページのソースを見ていて、
(1)ある文字列を検索して、JavaScriptソースの相対URL文字列へカーソルをもっていく。
(2)「:」でリンクにして、
(3)Enterでリンクに進む。
それを繰り返したの。ちょっとわかりにくいかも・・・。ttyplayで見れば一目瞭然なのよねぇ。
相変らず読み辛い文だねえ。
270!261:04/07/15 04:06
>>263
ほんとだ、これいい。

でも、二行目用に表示を切りつめるのがうまくいかない…
先頭から一画面分と、末尾から一画面分を表示するのはできたんだけど。

%w とかで数を指定できればいいんだけど、今の window を基準にしか指定できないし…
271266:04/07/15 12:25
>>267
それは2つフィルタを使うということですよね?
現在のscreenでは1つのフィルタしか使えないので無理です。
おまえらー、screenのパッチの所在を教えてくれぃ
~/patches/screen/
>>274
NFS export(rw,no_root_squash)してくれ。
screen -ls すると、

[user@host:/home/user]% s -ls
There are screens on:
        31295.pts-9.host       (Detached)
        32332.pts-9.host       (Detached)
        8112.pts-2.host        (Attached)
        8284.pts-23.host       (Attached)
4 Sockets in /tmp/uscreens/S-user.

ってでてきますが、この 31295.pts-9.host に名前つける方法あったら
教えてもらえませんでしょうか。
277ギレン総帥:04/07/20 08:47
>>276
セッション作るときに
% screen -S <your_favorite_name>
とすれば、好きな名前で作れる。

しかし既存のセッションの名前を変えることはできないよ
278ギレン総帥:04/07/20 08:50
>>277
訂正
既存のセッションでも、sessionnameコマンドでセッションネームを変更できる

^A:sessionname <new_name>
>>278
ありがとうございます。
用途別に複数セッションつくって、windowsからputtyで使ってるんですが、
windowsの端末rebootしたりした後にどれがどれだかわからなくなるのに
こまってたんです。たすかりました。
>>274、275
激しくワラタ
281276:04/07/20 12:56
sessionの名前変えたあと、screen commandで新しいwindow作ろうとしても
うまくいかないようですね。^A-cで作るのは問題ないし、
最初から名前付けて立ち上げればいいだけですが。

[user@host:/home/user]% screen -t server01 telnet server01
/tmp/uscreens/S-user/8831.pts-0.host: No such file or directory
>>281
STY=8831.foo screen -t ...
283ギレン総帥:04/07/20 13:24
>>281
環境変数 STYを pid.<new_name> に変更すればいけるはずだ。

次のようなスクリプトで STYの名前変更を自動化できるかも
子プロセスとして実行じゃなくて source で読んでくれ

# for bash variants
SCREEN_PID=`echo $STY | sed 's/\..*$//'`
export STY=`screen -ls | grep ${SCREEN_PID}. | awk {print $1}`

または

# for csh variants
set SCREEN_PID=`echo $STY | sed 's/\..*$//'`
setenv STY `screen -ls | grep ${SCREEN_PID}. | awk {print $1}`

でも面倒だね。やはり最初から screen -S でセッション名つける方が無難だな。
>>187
colon に引数渡せたのか!info に書いてないから知らんかった。
こんなふうにしてみたらものっそい快適になった。(いろんなところへ telnet することが多いので)

$ grep remote ~/.screenrc
bind -c remote e colon "screen telnet-is eucjp "
bind -c remote s colon "screen telnet-is sjis "
bind -c remote u colon "screen telnet-is utf-8 "
bind r command -c remote
$ cat ~/bin/telnet-is
#!/bin/bash
enc="$1"
shift
screen -X eval "encoding \"$enc\"" "title \"$1\""
echo -ne "\e]0;telnet: $1\a"
TERM=vt100
export TERM
exec telnet "$@"
なるほど。こりゃいいアイデアだ。
ratpoisonでもcolonに引数渡せるけどな。
セッション名をステータス行に出すにはどうしたらいいんでしょう。
[screen #:Title]ってとこに、[session #:Title]みたいに出したいんですが。
287名無しさん@お腹いっぱい。:04/07/23 13:29
$TERM = cygwin のときとそれ以外のときとで,
defencoding だけ SJIS と euc を場合分けしたいのですが,
SCREENRC でファイルまるごと分けるしか手はないのでしょうか?
backtick 0 0 0 set-defencoding.sh
>>286
exec ruby -e 'system "screen", "-X", "setenv", "session", ENV["STY"].split(/\./)[1]'
hardstatus lastline "[screen :$session]"
>>287
termcapinfo の KJ エントリのことでわなくて?
>>287
alias screen='screen -c .screenrc.cygwin'

[.screenrc.cygwin]
source .screenrc
defencoding SJIS
292289:04/07/23 19:56
pidも出すのならシンプルに
hardstatus lastline "[screen :$STY]"
>>288
>>291
起動した screen の defencoding を変更するには,
set-defencoding.sh にどう書けばいいのかわかりません.
結局, 2 ファイルになるなら,
ホームディレクトリに .screenrc と .screenrc.cygwin を
置かないといけないのが目障りですが, >>291 の方法にします.

>>290
defencoding も temcapinfo のように TERM によって
異なる指定ができるのがベストです.
>>293
screen -X
>>294

外から制御できるんですね.
でもなんかうまくいきません.

~/.screenrc に

termcapinfo cygwin KJ=SJIS

だけ加えて, screen を起動すると入力した文字が見えずに
カーソルだけ動くという状態になり, 別の rxvt/cygwin から

screen -X encoding SJIS

としても, 日本語はおろかアルファベットも文字化けしてしまいました.

backtick 0 0 0 [ $TERM = cygwin ] && screen -X encoding SJIS

みたいな感じでできるかなと思ったのですが,
もう少し調べる必要がありそうです.
backtick 0 0 0 sh -c '[ $TERM = cygwin ] && screen -X encoding SJIS'
でどうなんだろう・・・・。
captionの並び方を 1〜9,0というキーボードと同じ配列にはできませんか?

0から始まるのはプログラミング的。ユーザビリティを考えたら
キーボード配列と同じ方が直感的だと思うけどどうでしょうか?
前スレあたりで外出

これといった解決策も出なかったような気もするが。
タッチタイプをしているのならキーの位置関係なんていちいち意識していないと思うんだが
>>297
10以上はどうするんだ。1,2,3..9,0,10か?
a,b,c,d, can I bring my friend to bed?
>>300

そもそも10以上は番号指定では移動できない。
nとかpを駆使して移動するしかない。
See >>55-
表示するときの話じゃなかったのか?
ユーザビリティって意味では1234もいいが
asdfとかqwertとかがいいな。
>>302
C-a 'を使えば一応大丈夫。設定を追加すれば10以上でも直接移動OK。
>>297
あたしは0番にemacsを起動させててほとんどの時間を0番で過ごしているから特に違和感なし。
新たなwindowを立ち上げるのもemacsからscreen -X screen経由が多い。
なんていうか、ちょっと特別なwindowといった感じ。野球でいうホームベースみたいなものかな。
C-a" (windowlist) というものもある
wのwindowsを上書きしてwindowlistを割り当てている人あたしのほかにいますか?
個人的にはかなりお気に入りです。
C-a を押さなくてもいい mode はないかしら
n を連続で押して window が次々切り替わるような
>>309
bindkey
bindkey で n とかを変えたり戻したりってことすか
man夜目
manは関係なし
bindkeyの使い方ならmanに書いてありますがw
310の考えが焦点なのでは
もういいよね。311 の考えた通りでしょ。
/dev/pts/1 のコマンドラインからの出力を /dev/pts/2 の標準出力に流したいんだけど?
流せば?
流れますた
ゴメンナサイ
便乗質問ですが、/dev/pts/数字の最大数はいくつか知っていますか?
私のところでは/dev/pts/4833とかかなり大きくなっています。

>>317
たしかにリダイレクトするだけで流れますね。
escape ^]]

としたとき

bindkey s stuff ^]
bindkey ^] stuff s

は成功するけど

bindkey ^] stuff ^]

が成功しない。

bindkey ^] echo l

とか何か別の機能(stuff s とかでも可)を bindkey した後でならなぜか成功する。
この挙動はどう解釈すればいいんでしょう。不可解です。
>>321
コマンドキーをbindkeyするなってことだ。
bindkey ^] echo l
のあとなら成功するなら、それでいいじゃないか。
あまりよくないような
>>322
あー、そうなの。まあいいです。
multi display mode(-x オプション) で attach してる数を知る方法はないですか。
>>325
C-a *
はどうですか?
どうも。できればその数によって起動時の挙動を変えたいのですが。
環境変数の設定を。
screen の中での screen に対する操作で
現在使用している端末(screen に attach してる)の
環境変数を参照したいのですが方法はありますか?
>>328
linuxだったら
cat /proc/<pid>/environ
なるほど。実は netbsd です。
>>330
ps wwe の出力を元にperlかなんかでがんばれ。
332330:04/08/04 06:38
ありがとう。
screen の中の w3m とか X client の環境変数を現在の端末にあわせたくて
screen の環境変数を変えようとしたんだけど、
よく考えたら既に存在している中のプロセスには影響しないんだった。
>>332
w3mはM-x SETENVをstuffで入力しる
>>333
muttにもそういうコマンドがあればなあ。
>334
意味がよくわからん.: じゃ駄目なのか?
screen 9 で remote host にログインして tail -F するプロセスを飼っています。

zshrc の設定で screen 9 が存在する時にはそのプロセスを起動するようにはでき
るのだけど、ネットワークが切れて screen 9 がなくなった時とかに再度 screen 9
を起動するにはどうすればいいんでしょう。

コマンド送って起動状態を監視するプロセスを定期起動するぐらいしかない?
zombie "q^M"
などと設定すればscreenで飼っているプロセスが終了してもwindowは残っているし、復活もできる。
おまいらも試してみれ。
質問です、

ときどきbinaryfileをcat してしまい shellのプロンプトが
↓になってしまうときがあります どうしたら戻せるのでしょうか?

梺闖?セ鱇齔矼鴪 跫艚
>>338
一旦detachしてからattachするとか。
zombieを設定しているならshellを終了してから復活させる。
そもそもcatよりもlvやらw3mやら「安全な」コマンドを使う。もしくはaliasする。
>339 有難うございます
仮想端末の方をリセットするのも試してみよう
ISO-2022-JP なファイルを cat するとか、 reset コマンドとか、
screen の C-a Z とかも効くことがある。
.zshrc にこんなの入れてる。

alias reset_term='echo -n "\eP\ec\e\\"'
>>338のような場合でktermがCPU100%になって固まることがあった。
その場合、ktermを殺してから新しいktermでattachしたら戻った。
俺の場合 screen が 100% になったが。
その場合 screen を kill って完全終了。
CPU 占有の暴走状態でないのなら以下が有効。かも。
別の window が化けてない場合 screen のその window だけの問題なので
仮想端末っていうか箱の端末の方はあまり関係ない。
その場合は >>343 みたいに
echo -n "\ec"
とか、画面が消えるのがいやなら
echo -n "\017"
とすること。ちなみに \017 は ^O 。
man screen からの抜粋だが、以下は
control sequences recognized by screen のリスト。
まあそういうこと。

Control-N (A) Lock Shift G1 (SO)
Control-O (A) Lock Shift G0 (SI)
ESC n (A) Lock Shift G2
ESC o (A) Lock Shift G3
ESC N (A) Single Shift G2
ESC O (A) Single Shift G3
>>343
reset_term って zsh の特殊な alias ?
run-help とか which-command みたいな。
screenをkillしたらペットたちもあぼんするだろ!
他に方法が?
正直、screenの暴走は板杉。
仮想端末のリサイズでよくなるんだなこれが。

さらに保険が必要?
screen が暴走って・・・どんな使いかたしたらそうなるんだよ・・・
1か月ずっと screen 使ってても全然動かんぞ
最近あまり暴走しない。
前は暴走するときは大体化けてたような気がする。
たしかにリサイズしたら暴走しがちだ。
リサイズして1〜2秒ほど待ってから操作するようにして以来、暴走してない。
以前、暴走した時点のcurrent windowはemacsだったような。
だけど暴OSと違って文章を書いてていきなりscreenが暴走したりはしないだろ?
俺の記憶が正しかったら、そんな経験はなし。

>>349
emacsの場合、auto-saveがあるからまだ救い。
w3mの時にリサイズ死しやすいような
暴走したらいきなりscreenを殺すなよ。中の人たちをさきに殺るん
だ。zshのヒストリが無くなってしまう。muttはCPU負荷が99%にな
ってしまう。
zsh は incappendhistory on だり。
mutt は………そうなの?
大将のscreenが逝くと連帯責任でペットたちもあぼん・・・残酷w
Xが逝ったときに中の人を護る為にscreen使ってるのに
そのscreenが中の人を巻き込んで逝くんじゃ本末転倒だ罠
359名無しさん@Vim%Chalice:04/08/07 15:25
screen で split した状態で w3m を起動すると w3m の「一行の高さ」ってい
う設定が通常の倍の数字になっちゃうんだけど、これは screen のせいか、
w3m のせいかどっちでしょ?特に困ってるわけじゃないんだけど。
調べる技量が無くてスマン。
>>359
「一行の高さ」はw3mが勝手に決定して困るので
w3m -ppl 16などのように起動してます。
361359:04/08/08 00:27
>>360
ですよね。僕もそうaliasしてます。
だからまぁ困ってないからいいっちゃぁいいんですけど…
window (X の) の高さを LINES とかで割ってんじゃない?
363334:04/08/08 22:22
>>335
muttがpipe-messageするときにfilterに渡す環境変数を制御できれば
なあ、という意味です。「:じゃ駄目か」というのはどういうことですか。
364!335:04/08/09 09:05
sh と同じで
VAR=value command args ...
でいいんじゃない?
関係ないけど w3m の M-x ってデフォの keymap じゃないよね。
> リサイズして1〜2秒ほど待ってから操作するようにして以来、暴走してない。
w3mはリサイズされると即再レンダリングを始めるから
そこで何か起きるの鴨
elsceenの新版でてますな。
ものすごい勘違いしてる気もするが
screenのセッション(A)内で他のセッション(B)を下のようにアタッチするとき

$ screen -ls
There are screens on:
1399.A (Attached) #いまはこのセッション
1414.B (Detached)

$ screen -r B

この後C-a dでデタッチしようとするとBだけでなくA
もデタッチされてしまう
Screenは4.00.02なんだが他の人はどうすか?
やってみた。で気付いた。
C-a a d
じゃないすか?
>>368

ども、できました
screen使い始めてからずっと使いづらいと
思ってたとこなのですごい助かりました
やっぱり親セッションの方でC-aはフックされるんですかね
そらーまぁ
screen on screenするならそもそもAとBでprefixを変えればいいじゃないか。
>>368
98へぇー
おれは C-a a を端末エミュレータの Ctrl+. とか空いてるとこにあててる。
bindkey ^a stuff ^a
ができればなぁ
>>373
それができるとどうなる?
>>367
GJ!
つーかおまえら、prefixをC-aのままにしてんのか? 変えるやろ、ふつー。
だからって変えた prefix で投稿してもなんのこっちゃわからんので C-a っ
て書いてるんだろ。いちいち prefix- とか書くの面倒だしわかりづらいし。

ちなみに漏れは C-t に設定している。
漏れは C-l 。出身がバレる?
C-a のままですが何か?
>>374
bind ^[ bindkey ^a stuff ^a
bindkey ^[^a bindkey ^a

とかする。
これだと screen on screen on screen で戻るとき困るけど。
screen on screen on screenなんかやって自分が混乱しねーか?
hardstatus alwayslastline "%{bk}%-w%{g}%n* %t%{-}%+w"
としてるので特に問題なし
caption always "(ry
としてるので特に問題なし
先生!なんか(ry しか出なくなりますた!
>366 1.3にしたら plusが使えなくなった てかplusの使い道がわからずじまいでした。
caption が出ると hardstatus が反転するんだけどコレ抑止できない?
C-\ にしてる人は、ついうっかりscreenなしでプロセスを動かすという
ことがないんだろうな、きっと。
もともとC-\って何につかうんよ?
>>388
たいていは core dump させるときにつかう。
ていうか 387 の意味がわからない
screenを使ってない素のシェル上なのを忘れて C-\ すると
こんな core うちの(ry
C-\ じゃなくても期待の動作が得られなければ気付くと思うが
C-\ は唐突にどっから出てきたんだ?
前スレか前々スレで話題になってた記憶が。

なぜ387で突然出て来たのかは謎。
395387:04/08/23 00:35
あーそうだよそうだとも、どうせ俺は電波だよ。
喩えていうならば、電気街でPCパーツメーカの紙袋を持って歩いていると、
どこからともなく寄ってきて普通の声で独り言を二言三言いった挙句に
こっちが反応する間もなくそそくさと立ち去っていくような、そういう
のと同類なんだよきっと。
誰?
escape ^\\\ にしてるが、シェルの方では無効にしている
TeraTermからzmodemでファイル送りたいんだけど、転送終了を
検知できないみたいでファイル転送が終わらない。
みなさんのとこではうまく動作してますか?
うちもだめなんでいちいちデタチしてるですよ
あえてscreenスレで聞きますが、
複数の仮想端末から一つのemacsプロセスにつなげる方法ってあるでしょうか?
emacs -nwではフレームなんて使えないですよね?
>>400
screenを使えば、同じ画面を共有することは可能。別々のことはで
きない。
そりゃそうだ
>>400
emacs multi-tty support か XEmacs + gnuclient を使う。
あるウィンドウで vim を動かしてて、別のウィンドウで
vim を起動させようとしたら、既に vim が動いている
ウィンドウに移動する。ということは可能ですか?
>>404
可能。>>135にあるように各ウィンドウの状態が得られれば便利な
のだが、それは無理なので、どこのウィンドウで何が動いているか
を自分で管理する。

例えば、新規にvimを開始するときに、/tmp/windows/vimというファ
イルを作りウィンドウ番号を書く。

vimを起動しようとしたときに/tmp/windows/vimがあれば、そこに
書いてあるウィンドウ番号に飛ぶ。

vimを引数(ファイル名)付きで起動しようとしたら、vimのウィンド
ウに飛んで、stuffでそのファイルを開くコマンドを送る。
406404:04/09/02 13:20
>>405
わかりやすい説明ありがとう。やってみます
多重に起動したいとき変なことにならないかな?
408405:04/09/02 13:45
多重ってscreen? vim?
vimの多重起動は問題ない。screenの多重起動はしないから問題な
い。
screen の多重起動はなんの問題もないよ。
screen -ls でセッションのリストが出る。
410400:04/09/02 13:52
>>403
ありがとうございました。とりあえず後者でやってみます。
hardstatusに占拠される
Screen使いの人って、いつscreen起動してますか?
私は必要になってからscreen起動するようにしているので、
いざWindow開こうってときになってから
screen起動し忘れてるのに気づいたりします

もしかして.*loginとかでscreen起動するのが普通だったりします?
ていうか screen プロセスを終了させることがない。
帰宅するときにデタッチして、出社したときにアタッチする、そんな毎日。
そして半年後くらいに screen が暴走する。そんな毎日。
>>412
.*loginとかでscreenアタッチするのが普通だったりします
loginとほぼ同時だな
417ギレン総帥:04/09/02 20:43
>>407
-S sessionnameをつければ問題ないと思うぜ。
>>412
パソコンつけてXあげたらすぐにscreen。
>>412
ていうか kterm -e screen -R
~/.Xclientsの最後で
exec mlterm -e screen -xRR
>>414
ほんとそれがなければ神ソフトっていっても過言じゃないのにな〜
暴走時の core 採取したら神のはしくれになれますか?
>>421
kill -QUIT で採れそう
423373:04/09/03 01:26
いまさらだが bindkey ^a meta とすればよいことに気付いた
>>423
Emacsが使いにくくならんか? 普段からMETAの代わりにESCとかC-[とかで使っている
人ならいいだろうけど。
425ギレン総帥:04/09/03 13:05
わざわざcore fileとらなくても
暴走してるscreenプロセスのプロセスIDを調べて
% gdb <pid> ってやれば、デバッガでいろいろ調査できる

…でも俺の環境ではなかなかscreen暴走しないのだった
btとりました。libncursesのせいみたいです。
#0  0x4003f5d1 in tputs () from /usr/lib/libncurses.so.5
#1  0x08078aef in GotoPos ()
#2  0x0807c1bd in DisplayLine ()
#3  0x08081934 in LCDisplayLine ()
#4  0x080626bf in WinRedisplayLine ()
#5  0x0807b8a5 in RefreshLine ()
#6  0x0807b682 in RefreshArea ()
#7  0x0807b632 in RefreshAll ()
#8  0x080795e9 in Redisplay ()
#9  0x0805a0f9 in ResizeLayersToCanvases ()
#10 0x08059f5f in ChangeScreenSize ()
#11 0x08059d88 in CheckScreenSize ()
#12 0x0805c9b2 in ReceiveMsg ()
#13 0x08082917 in sched ()
#14 0x0804b267 in main ()
#15 0x42015967 in __libc_start_main () from /lib/i686/libc.so.6
>>425
gdb --pid=<pid> じゃないですか?
428426:04/09/03 14:06
libncursesは関係なかった。display.cの2771のforループで無限
ループになってる。2785でx--になっててxが0のまま変化していな
い。
これで一応直るが、副作用があるかもしれん。
*** display.c.old       2004-09-03 14:40:57.000000000 +0900
--- display.c   2004-09-03 14:41:02.000000000 +0900
***************
*** 2782,2790 ****
  #ifdef DW_CHARS
        if (dw_right(ml, x, D_encoding))
        {
!         x--;
!         debug1("DisplayLine on right side of dw char- x now %d\n", x);
!         GotoPos(x, y);
        }
        if (x == to && dw_left(ml, x, D_encoding))
        break;  /* don't start new kanji */
--- 2782,2792 ----
  #ifdef DW_CHARS
        if (dw_right(ml, x, D_encoding))
        {
!     if (x > 0) {
!       x--;
!       debug1("DisplayLine on right side of dw char- x now %d\n", x);
!       GotoPos(x, y);
!     }
        }
        if (x == to && dw_left(ml, x, D_encoding))
        break;  /* don't start new kanji */
screenの暴走のさせ方

nice 19 screen -c /dev/null
exec w3m
「ウィンドウの大きさを1x1にして元の大きさに戻す」を何回も繰り返す
>>427 すれ違いだが

gdbは引数を以下の順番で解釈する

1. PATHにある実行バイナリ名
2. コアファイル名
3. プロセスID番号

数字だけの名前の実行バイナリやファイルがなければ
間違いなくプロセスIDとして解釈されるよ
432ギレン総帥:04/09/03 18:26
> …でも俺の環境ではなかなかscreen暴走しないのだった
なんていったとたんにscreen固まった。
2ヶ月ぶりくらいだ。

gdbでアタッチして調べてみたら >>428と同じところで無限ループになっていた。
>>424
?何で?
>>429
(゜∀゜)神のヨカーン
435421:04/09/03 22:12
言ってみるもんですね。ありがとう神様たち。
とは言え、漏れ自身は、端末サイズを変えないせいか、暴走は皆無なんですけどね。
>>405
同様の方法を複数のw3m on screenに適用した。
atとstuffを使ってそれぞれのw3mで現在表示中のページのタイトル($W3M_TITLE)をファイルに吐き出す。
そしてそのタイトルからメニューを生成しておくと、希望のw3mを選択できるように。
多分マルチバイト文字使っていない開発者さん達の環境では暴走し
ないんだろうな。だれかMLに報告してくれないかな。
http://lists.gnu.org/archive/html/screen-users/
>>429 から読み取れる暴走の条件は何?
とりあえず-DDEBUGをつけてコンパイルしてみれ。
ratpoisonみたいにコマンドのaliasができたらいいなー。
aliasか。考えたこともなかったけど、そんなに便利かな?
おれはdabbrevが欲しい。ウィンドウ内から補完してそのあと全ウ
ィンドウから補完してくれるようなやつ。
firewallの奥底深くにわたしのマシンがあって、
そこでscreenが待っています。

このhostへ到達するまでのfirewallはTCPのタイムアウトがあるので、
hardcopy_append on
hardstatus on
hardstatus string '%w %c'
して、タイムアウトするのを防いでいます。

ところで、奥底深くへのssh chainも面倒な話なので、(agent使っていても)
一番手前のhostででもscreenを動かしておこうと思っています。
ところがこのscreenがステイタス行向けのエスケープシーケンスを食ってしまって、
手前のsshを動かしている端末まで到達しません。

screenで対処するにはどうすればいいですか?
久しぶりに凍りついたよ・・・はじめはIMが悪さしとるんやと思っとったが
screen がリソース暴走w
X を堕とさなあかんかったのはいややった・・・
gdbで見てみた?
>>442
んな煩わしいことせずに、 SSH で keepalive すりゃええやん。
>>445
うちも442と似たようなことしてるんだけど、
FWの奥のhostは俺の管理下になくて、telnetしかできない。
keepaliveするにはどうしたらよかろうか?
>>446
自分の権限で立ち上げられるssh相当のプロセスをこしらえる。
Xを使うウィンドウアプリケーションでscreenみたいにアタッチ・デタッチする方法ってありますか?
xmove がそれっぽいが... 使ったことはない
vnc とか。
ちゃんと作ろうとするとX serverのExtentionの差とかも
吸収しなきゃいけないからカナーリめんどくさいんだよな。
>>448
vncのモトネタになった研究がそれ。
>>451
Xnestみたいに、いったん中継させればできそうだが。
xtermやktermをscreenで切って使いたいのですが どうするのですか?
C-a S
C-a Tab
C-a Q

縦割や高さ可変はどうするのですか?
>>456
man screen
で、どうやって可変するんですか?
>>458
俺の記憶が正しければ縦割りは無理で分割比の変更は
$ env PAGER='less +/resize' man screen
やりかたを言って
:resize
縦割りは無理、今後も実装する予定なしらしい。
まぁアレだ、素直に mlterm を横並びに2枚貼っとけということですな
縦割りしたけりゃratpoisonでも使いなさいよ。
465459:04/09/23 17:24:01
>>460
やりかたも何もそのものずばりが書いてあるじゃないのよ、
ばかばかばかー。
window番号を入れ替える方法ってありますか?

*1 で開いたプログラムを *9 に移したり。
>>466
:number
>>467

thanks
便利になりました。
ところで周りの人でscreen使っている人いますか?

キャリア向けのソフトウェアをUNIX上で開発しているけど、
周りでscreen使っている人いません。
TeraTermを複数個開いている人ばっかです。
います。
:numberで番号を変更しても環境変数WINDOWまで変更されないから注意。
screenを使ってこそteratermを複数開く真の喜びが理解できるのにな
それぞれ別のマシンのシリアルコンソールに繋がっている。
>>472
teratermで画面4分割して、それぞれの画面で同じように動かすアレだろ?

数ヵ月使用していると100M以上に太るんですが、
mallocの実装をすげ替えたりすると効果あるのかな?
俺も長期連続使用してるが使用メモリは1.5M程度だ
いったいどうやったらそんなにでかくできるの?
バックスクロールバッファ100万行とか?
>>475
mallocの実装とか言う前に環境を書け
"^a "と"^ap"を、なにか1ストロークにmapしようと思うんだけれど、
どのkeyがいいだろう?
Ctrl+左右か、Ctrl+,.か。
>>478
おりは "^a " を1キー(END) に map してる。普段はあんまり枚数開かないか
ら "^ap" したいときは END を連打。
escape ^ll

# 出身ディストロがバレる(^^;
>>480
それってデフォルトになってるディストリがあるの?
おれも同じだから気になる…
>>481
Plamo の /etc/skel/ に...
^l っておれは非常に頻繁に使うぞ。
^m なみに使う。
>>483
私の場合^LはEmacsで自分用のprefix-keyにしてる。再描画は^L^L。

>>478
Xfer,Nfer,Windowsあたりでどう?
otherが使えなくなるのがいたいなあ > escape ^ll
Ctrl+0 に 画面0を選択 をmapしたいときってどうすればいいんでしょう?
bindkey ^0 select 0
ではダメみたいなんですが。
あと、Ctrl+TabとかCtrl+カーソルキーとか。
>>486
X11上で動くxscreenみたいなの作れば(キーボードのスキャンコードレベルが扱えるだろうから)できるけど、
ttyレベルでは ^0 とか ^TAB なんて文字コード存在しないので無理。不可能。アンポンタン。
kterm とかだったら KTerm*VT100*Translations: で ctrl-0 が
何か特殊シーケンスを吐くようにして、そのシーケンスを bindkey しておけば
擬似的には出来るけどね...

一般的じゃないからお勧めは出来かねます
>>486
X上ならxbindkeysとscreen -Xを組み合わせよ。

>>487
xscreenは大袈裟。

>>488
なるほど。初知りです。奥が深い。
>>488
特定のキーに特殊なシーケンスを吐くようにしてからバインドするという二段構えはscreenに限らずUnix上の常套手段な希ガス。
491アンポンタン:04/10/07 16:39:23
>>487
勉強になった。ありがとう。
>>489
xbindkeysとscreen -Xの組み合わせはやばい
X 上で使うなら普通に端末エミュレータの設定で対処したほうがいい
>>493
たしかにその方がいいですね。サンクス。
>>492
どうやばいの?
>>495
>>19になる。>>19は僕ですが、他の環境で発生するかは分かりませ
ん。
私家版GNU Screen使ってる人います?
このスレに投げられたパッチとか当たってるみたいなんですけど。
ttp://www.rubyist.net/~rubikitch/computer/hacks/screen/
url見て退散
くわばらくわばら
500!
>>498
君は正解
-xRR にしてるけどもっといいのありますか?
>>503
何が不満?
普段からscreenのお世話になってるんですが、
Xまるごとscreen見たいにするソフトってないんでしょうか。

X端末(Windows + cygwin)のケーブル抜いて
全部死亡って言うことがあるんで何とかしたいと思ってます。
ratpoison
vnc
コンソールアプリを多用してscreenを使う
screenでvim使うと色がおかしくなるのって直らんの?
term=screenからterm=vt100にすると直るってのはググっててハケーンしたけど。
「直らんの?」じゃなくて自分で直せってことだ
>>509
terminal emulator側の問題の可能性も大
>>509
具体的にどうおかしくなるの?
ktermなら大丈夫
うちのvim色がおかしくなんかならんよ
509はTeraterm使っているに100カノソ
>>509
vimのステータスラインの背景色を黒以外にすればなおる。
hi StatusLine term=NONE cterm=NONE ctermfg=white ctermbg=black
colonでヒストリが使えたらいいのに
>>520
screen -X で我慢しる。だけど、colonと-Xは微妙に違うような気
がするんだよな。
-xRRってどういう意味のオプション?
man screen
-xとか-Rの意味は分かるんだが….
-dRRはわかるでしょ? ちゃんと書いてあるから。
それの、既に開いてるセッションをdetachしないバージョン。

kterm -e screen -dRR

kterm -e screen -xRR
を比べてみればいいと思うよ。
OS X上から Linuxにsshでログインし、screen上でdelete押すと
Wuff ---- Wuff!!
と怒られます。

過去スレに関連ネタがありそうな気配だったのですがdat落ちしていて読めません。
キー割当とterm typeを設定すれば何とかなりそうだとは思うのですが、、、
アドバイスください。おながいします
でかいのネットに過去スレが保存してあるぜ
528名無しさん@お腹いっぱい。:04/10/26 14:05:36
http://makimo.to/ って過去ログサービス(無料)があるよ

screenってどうよ
http://makimo.to/2ch/cocoa_unix/1001/1001966406.html

GNU screen その2
http://makimo.to/2ch/pc3_unix/1048/1048030339.html
>>526
vbell
>>525
thx!
あたま悪いこと訊いてすまんかった.
531526:04/10/28 02:46:32
thx!!
ターミナルの設定でdeleteをbackspaceとして送信するオプションを
チェックしたら問題なく使えるようになりました。
同じ問題にあたった方はお試しあれ。
( ゚д゚)
>>150と同じUTF8上の環境で同じ現象がでてるのと思われるのですが、
以下の設定で日本語を表示できる方いますか?
$ cat .screenrc
defencoding utf-8
defutf8 on
hardstatus alwayslastline "あいうえお"

$ echo $LC_ALL
ja_JP.UTF-8

screenを実行すると、
"?????"
になってしまいます。
534533:04/10/30 00:21:38
文字化けしました。
>>533の"?????"は、ウムラウトのaが5つ並びます。

ちなみに本文は文字化けしません。viでもUTF8な日本語は表示可能です。
535名無しさん@お腹いっぱい。:04/10/30 16:11:47
( ゚д゚)( ゚д゚)( ゚д゚)
( ゚д゚)( ゚д゚)( ゚д゚)( ゚д゚)( ゚д゚)
( ゚д゚)( ゚д゚)( ゚д゚)( ゚д゚)( ゚д゚)( ゚д゚)( ゚д
538533:04/10/31 07:38:05
ギレン総帥の降臨キボンヌ
ギレン総帥なら拉致されますた
540150:04/10/31 10:25:21
>>533
おそらく、hardstatusはutf8に対応していないんじゃないかと。
541533:04/10/31 11:36:48
>>540
あう、だめなんでつか。

でも、UTF8なドイツ語のウムラウトがちゃんと表示できるから
日本語のUTF8もできるんではと思っておりました。

改造すればできるのかと思ってソース見たんだが、
PUTCHARLPが非常にあやちいような。。。。
542533:04/10/31 11:57:09
man にある BUGS に以下記述があった

・Screen has no clue about double-high or double-wide characters.
 But this is the only area where vttest is allowed to fail.
543ギレン総帥:04/10/31 16:59:37
私に何か用でも?
utf8問題は不可能という結論が出たではありませんか。
zombie "q^M"
screen cat very_small_file
したら表示される前にWindowが終了してしまう。
screen sh -c 'sleep 0.01; cat very_small_file'
ならうまくいく。とても不気味だ。
>>544
screen cat /dev/null
復活するが。
546544:04/10/31 21:07:31
ここで終了って書いたのはzombie状態になることですが。
very_small_fileは/dev/nullじゃなくて数十バイト程度のファイルです。
547545:04/10/31 21:20:27
>>546
>screen cat very_small_file
>screen sh -c 'sleep 0.01; cat very_small_file'
よくわからんが、おれのところでは両方同じになる。
bellが鳴ったときにwindowsが点滅してくれるのってなんでしたっけ?
>>548
screen だと、visual bell (vbell)。一般用語だと、visible bell。

termcap で vb をサポートしてないと、screen で vbell on にしても画面フラッシュしてくれないので注意。
>>548
Windowsなら何もしなくてもInternetに接続して放っとけば青い画面になるよ。
551名無しさん@お腹いっぱい。:04/11/02 13:41:01
age
UTF8で使ってる人って結構多いんだね.驚いた.
漢字が3byteになるだけで,百害あって一理無しというイメージが強いんだけど.
UCS4で実用的に使えるんなら,ちょっと使ってみたいかもw
> 百害あって一理無し
まあこういう人には確かに一利もないだろうな、3bytes
単にメジャーなLinuxディストロでUTF8がデフォルトになりつつあるってだけでしょ
>>553
お,お恥ずかしい.俺には半角カナで十分だな….首吊ってくる.
日本人ならふつーにeucでいいじゃんw
でも、ファイル名にUTF-8使うOSが多いんだもん。
>>556
日本語しか考えなくてすむ環境にいて、よかったね。
どうせeuc-krだろ。
未だに3byteだからとか言ってる香具師がいるのか。
fedora厨発生
OS Xだよもん
あら、OS X て utf-8 なの?
JISX0213に対応して欲しいなぁ。。。
そんなに難しくないよ。
566548:04/11/03 01:22:55
>>549
どもです。
さらに質問を重ねて申し訳ないんですが、vbel鳴らしたときに
ステータスラインの画面番号を点滅させるオプションわかったら
誰か教えて。あれすごい便利なんだけど設定なくしてしまった…。
screen入門サイト系のとこで学習したんだけど、調べなおそうとしても
全然見つからなくてションボリしてます。。。
man screenしてbellで検索すれ
bell "Bell in window %n^g"
これのことか?
UTF8じゃないやつってまだいたんだね。驚いた。
漢字が3byteになるだけで、それを除けばユニバーサルで文字化けフリーなんだけど。
EUC-JPはもうobsoleteなんではやく絶滅してほしいかもw
grepとかで漢字が使えなくなるんじゃないの?
それはどっちかてーとEUC-JPやSJISの方じゃないかと。
今はエディタ環境emacsもページャw3mもutf8が使えるから移行してもいい時期かも。
>>569
Unicode は端末だと文字幅問題が起きるんだが。フランス語の文字が全角にな
るとか、逆に JIS にある記号が半角になるとか。
>>573
そうそう。だから嫌なんだよね。
でも文字幅問題って Unicode の規格上の問題なの?
それともフォント製作者が間違ってるの?
>>569
イタタタ…
576名無しさん@お腹いっぱい。:04/11/05 15:49:18
漢字が3byteになるだけで、それを除けばユニバーサルで文字化けフリーなんだけど。
漢字が3byteになるだけで、それを除けばユニバーサルで文字化けフリーなんだけど。
漢字が3byteになるだけで、それを除けばユニバーサルで文字化けフリーなんだけど。
漢字が3byteになるだけで、それを除けばユニバーサルで文字化けフリーなんだけど。
漢字が3byteになるだけで、それを除けばユニバーサルで文字化けフリーなんだけど。
たぶん無知を装った煽りなんだろう。スルー汁。
釣られてみる。

>>569

「直」の字を Unicode で書いて中国ロケールや台湾ロケールで
見ると文字の形が違いますが何か?
他にもこういう文字がいっぱいあるんだが…
ちなみに日中台韓以外の locale で表示した場合、
どういう形で表示されるかは実装依存ときたもんだ。
cjkv と混ぜると
日本語自体がぐだぐだになるので
結局日本語しか使わないー>euc-jp でいいじゃんってなる。
>>580
cjk は解るけど v は何?
ベトナムじゃないの
しかし、時代の流れはUnicode。
デフォルトエンコードがそうでないOSは、Winと*BSDだけ?
BSD系だがMacOSXは確かデフォルトエンコードはUTF-8だったような。。
デフォルトエンコードってどういう意味で言ってるかわからないけど、
linux もロケールあるよ。
euc-jp でも sjis でも utf-8 の ja でも、
locale に何を選ぶかは本人の自由だよ。
まあでぃすとりによるんだろうけど。
>>583
使ったことないから間違ってたらすまんが、超漢字とかの tron系が Unicode
ってことはなさそうだけどな。

知ってるかもしれないが、 FreeBSD は 5.x は UTF-8 に対応してる。 4.x は
misc/utf8locale を入れればロケールとして使うことができる。

まあ、デフォルトになる日が来るかはともかく。
>>574
Unicode Standard Annex #11 EAST ASIAN WIDTH では、各コードについて
1カラム幅、2カラム幅、1カラムもしくは2カラム幅 (文脈依存)、その他 (制御文字等) というふうに文字幅を規定している。
ここで出てくる "文脈依存" というのがクセモノで、同じ文字コードでもある言語の中で使われるときは1カラム幅、
他のある言語の中で使われるときは2カラム幅、などと状況によって異なってしまう。
例えば Д とかのキリル文字で、ロシア語環境では当然1カラム幅だが、日本語環境では従来のコードと対応させると2カラム幅になる。
しかし、どういうときにどっちのカラム幅にするか等は規定されておらず、環境によって全くまちまちで混乱のもととなっている。
特に、screen のように複数のプロセスが複数のプロセス間で通信するとき、それぞれのプロセスが別々の環境で
動いているかもしれないのにその情報をやりとりする術が無いので、下手すると表示がグチャグチャになっしまったりする。

これ以外にも Unicode にはいろいろ面倒な糞仕様があるんだが、現状一番手軽に i18n/m17n をつくり込めるものでもある。
プログラマの観点からみると、UTF-8 のエンコード方法自体は綺麗だし、UCS-4 の1文字固定サイズというのも魅力だし。
1文字固定サイズなんて wchar_t 使えばどんなエンコーディング
でも一緒でわ?
>>586
うむ、確かにいざ実装してみようと思うと、
現在のscreenにUnicode対応するのは困難(仕様上)をきわめそうだな。。。
2重3重にscreenを使用された場合が特にきつい。
何か良い方法があればいいのだが。。。
587 名前:名無しさん@お腹いっぱい。[sage] 投稿日:04/11/06 06:09:18
1文字固定サイズなんて wchar_t 使えばどんなエンコーディング
でも一緒でわ?
590名無しさん@お腹いっぱい。:04/11/06 14:54:22
しかし、時代の流れはUnicode。
Unicodeを適切に支援しないソフトウェア
http://freedesktop.org/Software/BadSoftware
592名無しさん@お腹いっぱい。:04/11/06 18:33:40
UZeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
>>588
Unicodeなんで所詮は汎用の英語+1言語環境用ってことにして、
表示はscreenのlocaleに固定しちまうのが楽。
ところでscreenでUnicode対応が難しいって言うのはhardstatusのことだよな?
自分の環境ではhardstatus以外、UTF-8は使用できてるし。。。
hardstatusのUnicode不可状態を仕様とみなしてあきらめればよいのでは?
export PAGER=lv して screen 上で man したら、
矢印キーでスクロールできなくなった_no
TERMはどうなってる?
597名無しさん@お腹いっぱい。:04/11/09 01:04:23
>>594
UTF-8だとdialog系での表示がグチャグチャになるでし…。
日本語もちゃんと出てるし、素のterm上では問題ないんだけど…。

ちゃんと表示できてるなら、是非screenrc見せて欲しいっす。
598597:04/11/09 01:16:03
グハ
mltermの問題ダタヨ…。
rxvt-unicodeでは正常だったでし…。

ゴメンナサイ! ゴメンナサイ!
正直スマンカッタ
>>597
それは Unicode の問題
>>586とか
600595:04/11/09 02:41:13
>>596
mlterm 上の screen でちゃんと
TERM=screen になってます。
screen で飛び回ってる途中、たまーにコマンドがエコーしなくなって
しまうのですが、これ何か変なトグルをオンにしちゃってるんでしょうか。

状況としては、ls と打っても仮想端末上に表示されないが、
そこで Enter を押すと ls の出力が行われるといった感じです。

Ctrl+S->Ctrl+Q コンボとは Enter を押した時点で効いている点が違います。
>>601
一度そうなるとずっとそうなの? 他の端末も? version は?
単に M-RET してるとか。
603601:04/11/09 19:35:38
う、すみません。質問が適当杉でした...

・一度そうなるとその端末ではずっとそうです。
・この状態で他の画面に飛んでも起こってはいません。
・違う端末から戻ってきてもその状態です。
・バージョンは Screen version 4.00.02 (FAU) 5-Dec-03

です。打ち込んだはずのコマンドが実行されないのではなく、
表示されないだけで Enter を押すと実行される、という状態です。
雰囲気的には、何かのモードに入っているのかなあと考えたのですが、
たまにしか起こらないのでその再現も取れず…申し訳ありません。
zsh の RPROMPT とか使ってない?
>>603
不思議ですねぇ。シェルのコマンドラインだけでしょうか?
例えば、引数なしのcatを実行したあとのキー入力はエコーされま
すか?
それとも、bashなどでstty -echoを実行したときと同じような状態でしょう
か?
606601:04/11/10 09:47:29
スレ違いの疑いもあり申し訳ない & ありがとうございます。

>>604
zsh は使っておりません。bash の 2.05b です。

>>605
ちょっと今現象が起こっていないので前者は試せないのですが、
stty -echo とまさに同じような状況です。
ふつうにstty -echoするだけで実際変な状態になるね。
他のwindowに切替えてもおかしいまま。
608601:04/11/10 11:03:12
>>607
変な状態というか、こちらはこういうものと思ってました。
stty echo するともちろん戻ります。

元々私が陥っていた環境では…再現したら試して報告します_| ̄|○

stty -echo と同じ状態にするホットキーがあれば、
きっとそれを誤爆してしまってるで FA な気がします。
>>607
screenの中のwindowの1つでstty -echoしても他のwindowに移れば
stty echoになっているはずだが。
610607:04/11/10 14:11:35
いやあ、そうなるはずだと思ったんだけどそれがならなかったのよ。
使ってたのはrxvtなんだけど。

... と思って今試したら再現しないなあ。

過去ログからcygwinでデタッチ・アタッチできるパッチを発掘してきて当ててみた。
windowsでscreen -d -r できて結構感動した。
>>566
うお、そんなことができるの? たしかに便利そうだ。man にはそれらしきもの
は無さそうだけど…。"screen bell 点滅" でぐぐったら引っ掛かったので見
てみたら…このスレじゃねーかYOヽ(`Д´)ノ

どうすりゃいいんだろ。ヒントぷりーず。
>>612
bell "Bell in window %n^g"

カレントウィンドウでbeepした時は
「 Wuff, Wuff!!」
だからカワラネーよと思うだろうが、これの真価はバッググラウンドの
ウィンドウでbeepしたときに
「Bell in window 0」
と出るところだ。

$cat ~/bin/bell.sh
#!/bin/sh
/bin/printf "%s bell! \n , \a"

のようなbellコマンドを作っておいて

$sleep 3; ~/bin/bell.sh;
入力後すぐウィンドウ切り替え

みたいなのでテストするとよい。
時間のかかるコンパイル、ダウンロード作業など
の後にbell.shを書くようにするといい。

問題なのは、メッセージの表示が一秒くらいで消えちゃうのよ。
vbell_msg message
可視ベルのメッセージを設定する。ウィンドウがベル文字 (^G) を受け取り、かつ vbell に "on" が設定されているならば、message がステータス行に表示される。デフォルトのメッセージは `"Wuff, Wuff!!"' である。

vbellwait sec
screen の可視ベルメッセージが表示された後の待ち時間を定義する。デフォルト値は 1 秒である。


vbellwait 99999 とか設定しても効いてる気がしない。
>>613
詳しくありがとう。結局 >>566 の求めてたものもこれなのかな。いや、
>>566 の書き方だと caption の %n とか %t を色替えたり点滅させたり出来
そうに読めたもんで。

> 問題なのは、メッセージの表示が一秒くらいで消えちゃうのよ。
そそ、早いよね。そだ、bell コマンドの前後で msgwait を調整してやればい
いような。
あ、msgwait じゃなくて vbellwait の方か… orz
>>613
例につっこむのも無粋ですが、

> 時間のかかるコンパイル、ダウンロード作業など
> の後にbell.shを書くようにするといい。

こういう場合はsilence/silencewaitを使うかな。
ああ、解説ページはこれだ。
Screen
http://risky-safety.org/~zinnia/screen/screen-1.html

>なお、^Twで出てくるWindow一覧の、Window番号とタイトルの間にある変な記号ですが、これらはそのWindowの状態などを示すシンボルとなっています。とりあえず
>* 現在activeなWindow
>- 直前にactiveだったWindow(つまり^T^TするとこのWindowに切りかわる)
>! Bellが送信されたWindow (便利なんですわこれが)

と同じもんを常時ステータスラインに出したいのだが…
なんか誰か彼か判らんようになったきたぞ。
>>618
一番単純なのは下のような感じだが、そういうことじゃないのか
hardstatus alwayslastline
hardstatus string %Lw

記号と言えば&が出たときはその窓では入力を受け付けなくなって、
殺すしかなく困るときがあるのだが
>619
thx.
>>611
そのパッチ激しく欲しいんだけど,どこにあった?
>>621
Cygwin使っている人いますか? part6の521
サルベージ

521 名前: どこぞの653 1/2 投稿日: 02/11/02 13:37

マージされなさそうな上にいつ次が出るのか不明な為こっそり貼ってみるテスト
変更点:
- cygwin でコンパイルできるように
- attach できるように
- window size が反映されるように
Target: screen-3.9.13

begin-base64 644 screen-3.9.13-cygwin.patch.gz
H4sICPHHuz0CA3NjcmVlbi0zLjkuMTMtY3lnd2luLnBhdGNoAM1W8U/bOhD+
ufwVB9OmpKQhSUtpwkAq0LehjYJoxx7vlyokbmstdarYpXTj/e87O0nTUoKm
9zZtFlLNZ9+d/d3nu4R0OIRaEgAPEkJYrW66pl0342S0N6E8MJ8sZOBWtVot
taj0xzNoz0bguODUvcaBV2+CY1nOVq1We9ZdpecLuAwEOE2wm95+w2tkFtX1
oeI26y2j2WiAAkCO6h7+vgLCQjqEvSp0O52zXqff6d5kSyTiRC586nUKfBtN
cH9IhpSRUIsomz3o8Pi4RAaDIGb35GEwULB20juD4yOwXde26roKzYkg7F67
9xMD7v1oRgyw9cP0NBjz+T24QTKR3wPntd94j/Wdp7fvPp93cef/ul5Yrqqp
WGyISmElmlJrlYuYwV/kDmwbHNtrNDy7VSap1OCJoixv/6BcUfUDo1HP9fRK
0Y8T/EOqh3ECPI78hHJwTNuAT4w+zP2EgNa7uW6Yjg4+C2Eac07vogXEYkwS
nuWFDpFZeN++6Qzk5sFV/7an2KMsiGYhgbd8wfe4SOKp4Ob4eC28vFp6skwh
P/dky6SvH0+HN29g+3lB/Ni5X0h+Qjj9Sjbyn8MlEsiXK/0ZUYXFrqN4PQvz
WqqCpU1vxlIhHEib/aaHfJYKAV+E4boHqRSkUwnYlmXnKVCKR+45HTE/Akbm

522 名前: 2/2 投稿日: 02/11/02 13:38

IOOAiGFOWRjPs4eaJr5/fnnaQ/Z6/2ztSoxJsKBUOcNEaHMqSdemteP5YE5D
MYbtI/QnX6bCxoSOxkKCY6Lyo1AU+jCUD9kqIBrqMpR6nLs/yXvqMcuuHN+y
X4BRNP9qzjnWlwikz8ONlQQpkY5frAkpsiGLHC6RRb682m8wxXbDc6wyWSxt
VmThWJ6F9cEtl0Wr5RitVqvoOJJWfCPCD8YkVA8m4sPIH6lpMAmXc62YTpaz
ZDl7kDNd3+AVFSbEgvkTAnQyjSjhQLmPUPp606EOoSGKpxjItaPcSLP0pVM5
rnxGA80yYOdixgXcEcCGwEgg8PCoXB8ESSYUBW3u6EUKpX984hFhK0F0KYmL
9t9X7f77j52ujFIp3PfFoisPLeIYopiNAPmPk2Sh/Mps5Ewue96fyiRePJxN
tVVC/zxGn9OqbTUdLFnNFbXKEYz9BKpc3c06zCtZxtDKzbGXsFjABDuHL+Jk
g6ZSvcGRKhUFRWsbd3Z+ra6KWxdfU7/s1s9o4/fd/qWyGgdfiNgsqxlcVlaz
ZVVW5TcXqBJp1z3LLS2ruc2Tsup4+84L3dZyDdfeX+m2CnDzHFYALvhIUdBW
VElWyWQqsNNgF7vz8eOGhtrrUN/eMWBiTsyUUdOXffBwJRsAdwnxv0io8u9K
L74cdC9P+/3btexoVOaYBPEUc4ReZYIM3Hp99vkaHpVN9+Tj5ekHA6Tu3+Yd
Mvs2z31KDe3+F7fZP9LHkwhZD658K8ghScLiJUEenMazKFRilnHgNc+oUSo7
TO0+0CjSntBlQO/83eDktoObvgPbY3s8FA4AAA==
====
もっと最近のやつをこのスレの前スレに貼ったような気がしないでもない
screen のログって・・・(・∀・)イイ!!
>>625
サルベよろ。
にくちゃんねるにでも逝け
求めているものか解らないけど。
現在の画面が赤色になります。

caption always "%{=b kW}%H %{.C}[%{-}Load %l%{.C}] %{= .w}%-Lw%{=b .R}%n %t%{-}%+Lw %{= dw}"
ex.) hostname [0.00 0.00 0.00] 0$ zsh 1$ zsh 2 emacs 3-$ zsh
-xr -xR -xRR って何か違うの?
何か違う。
どうやら違う。
微妙に違う。
ほのかに違う。
なぎさも違う。
なまら違う。
>>634-635
マーブルサンダー
638名無しさん@お腹いっぱい。:04/11/21 00:22:59
ちょっとお邪魔しますよ。

screen上でviやemacsとか画面を切り替える感じのコマンドを立ち上げると、
終了したら立ち上げる前に表示されていたメッセージが消えてしまうんだけど
どうすれば消さないようにできるんだっけ?

表示した文字を保てるのはscreenでシェルを移動するときだけだっけ?
zombie?
正解
>>638
altscreen on
642638:04/11/21 13:49:08
>>641
おお!それですよ。
助かりました。ありがとうございました。
643名無しさん@お腹いっぱい。:04/11/21 18:02:03
最下行に中断しているジョブの一覧を表示できないかな?
precmd/postcmdだったかな、それとscreenのエスケープシーケンスをつかえば・・・
どうつかうの?
バックグラウンドジョブの一覧もいいけど
タイトルにフォアグラウンドのジョブを表示させたいなぁ。
現在実行中のプログラム名をwindow名にする方法はmanに書いてるぜ。
だね。俺はホスト名を送りこんでる。
>>647
何行目でしょうか?
文字列検索しる
>>650
検索キーワードを教えてください。
すぐわかったぞ。
653名無しさん@お腹いっぱい。:04/11/22 18:17:00
mona@2ch%(スペース)

.screenrcに
shelltitle '% |csh'
screen 1

タイトル変わりませんよー
654名無しさん@お腹いっぱい。:04/11/22 20:20:06
]:]
>>653
プロンプトに^[k^[\を入れたか?
656653:04/11/23 01:26:56
>>655
入れていないです。
.cshrcに
set prompt = '^[k^[\% '
と書いたけど、プロンプトが

^[k^[\% 
となるだけですよー
ワラタ
>>656
set prompt = "%{\ek\e\\%}%% "
659653:04/11/24 02:21:40
>>658
ありがとう。うごいたよー
#fgしたらタイトルもfgになったw
screen の中で、w3m 使ってるんですが、C-s でインクリメンタルサーチをしよ
うとすると固まります。どのように対処すればよいでしょいか?
>>660
デバグしてパッチ送りつける。
風呂制御の設定の問題じゃないのか。
うちのシャワーの温度コントロールはなってない。パッチくれ。
それは重大な未解決問題だ
それは熱湯BSD固有の問題でつ
>>660
^Q で復活するんじゃないか? だったらそれはttyの設定の問題
stty で 適当に設定しろ
>>660
screen+w3mだけどあたしんとこはなんないよー
いんくりもんくり
端末エミュレータが最低限(cursesで画面が崩れない程度に)
サポートすべきエスケープシーケンスってどのくらいある?
>>669
co,li,up,cl,cm
>>670
あああ誤爆ったのにレスthx!
そんな少しでいいんだ….驚いたな.
10番目のwindowに移動したいんですが、どやるですか?
C-a "
>>673
ありがとん
11番目のwindowに移動したいんですが、どやるですか?
676名無しさん@お腹いっぱい。:04/11/27 20:46:10
>>676
ありがとん
101回目のプロポーズをしたいんですが、どやるんですか?
679名無しさん@お腹いっぱい。:04/11/27 21:00:09
>>675
man screen
>>678
man screen -t -v -a 101
>>678
氏ね
ボクは死にましぇ〜ん
683名無しさん@お腹いっぱい。:04/11/27 21:19:54
>>682
やると思った
>>682
お前はもう死んでいる
>>629
これすごくイイね!
caption always "%{= .w}%-Lw%{=r}%n*%f %t%{-}%+Lw %=%m/%d/%D/%0c"
vim 使ってると active character set がしばしば G1 なるんだけど
こういうことよく起こるの?
毎回 echo ^O で直してるけど他に有効な対処はあるかな。
かなり嵌まる(w
端末を横並びに2枚貼って一方の端末は screen 上で
*ttyrec をかましながら* zsh + vim + emacs -nw -f navi2ch + w3m + ...
で普通に hogehoge してて、もう一方の端末上にそれぞれの ttyplay を
ちょっと時間を遅らせて走らせるとオモロイよ(w

あとで飯喰ってるときに早送りでそれを見たりして
「何やってんだあああああ俺って・・」
になりますよ(w
>>688
screenを利用してる事による面白みってなに?
>>689
えぇと、ttyplay 用の方の端末で screen を escape S で
分割しておくと一望できるところかな。
例えば 0*$ zsh 1$ vim 2$ navi2ch 3$ zsh_log 4$ vim_log 5$ navi2ch_log
として左側の端末で 0 1 2 を扱い、右側の端末で 3 4 5 用にしておくとか。
もちろん -x で。log の大きさはだいたい htop 30min モニターして 1MB ぐらい。
適当にそれを分割したり時間範囲でファイル名にしたりする script を書いておけばいいし。
あ、htop は裏で make を走らせていたのでログサイズはあんまり参考にならんな
692名無しさん@お腹いっぱい。:04/12/11 19:23:45
ktermでscreenを使うと、ステータスライン?の分、ウィンドウが1行のびたり
縮んだりするのをやめさせるにはどうすればよいですか?
ktermなんて捨てろ。
>692
そんなこと起きてないけど…
termcap の設定が違うのかな(こっちはFreeBSD)。
うちでも昔そんなことあった。
そのうちなくなった。
>>692
terminfo を書き換えなさい。
>>695
なくなったときに何をしたか覚えてないですか?
>>692
hardstatusの設定で直りそうな気がするが。

>>692
echo hardstatus off>>~/.screenrc
700!
>>701
サンクス!
これでどうにかなりそう。
kterm側で常にステータスラインを表示させるのでもいいかもね。
Ctrl+真ん中ボタンで設定するとか kterm -st とか。
screenをログインシェルにしてる人いる?
どうも試す勇気が出ないんだが,危険?
screenそのものにシェル機能ってあったっけ?
ログインシェルにはしてないが
端末エミュを起動するときに
自動的に特定の screen のセッションに attach するようにしてる。
707名無しさん@お腹いっぱい。:04/12/15 23:21:49
alias mlterm='mlterm -e screen -xRR'
とか?
ageちゃった鬱だ
>>706
俺も。ログインシェルにまでする勇気はなかったり。
ログインシェルにしたら screen の無限ループに陥りそうで恐いんだが・・・
ssh user@host screen
こういうことはできないんですか?
Must be connected to a terminal.
ってエラーでるよね?

ssh -t user@host screen
とすればいける
>>712
Thx
これで1ステップ楽できます。
ssh -t user@host exec screen
なら1プロセスお得
>>704
ログインシェルにしてるよ
問題なく快適に使えてます
無限ループへの誘い
altscreen on にしても、less foo とかで、画面が保存されないんです。
altscreen に影響するような設定って他にもありますか?
>>717
termcapを確認しろ
719名無しさん@お腹いっぱい。:04/12/22 15:21:16
screenをログインシェルにしたいのだけど、ログインシェルにすると
scpやsftpが使えなくなる。なにかいい打開策はないですか?
しないこと。
>>719
なんで?
722717:04/12/23 03:37:58
>>718
ぬりがとう
外からscreenを起動shellにしているホストにsftpしにいったらsshの先で
screenが起動されるからダメ、ってことじゃ。
shellの.*rcファイルでなんか条件書いてscreenを起動するかどうか設定
するのがいいのかな。
724717:04/12/24 11:27:02
>>719
たぶん、以下を.cshrcに書いて、cshをログインシェルにすれば
scp, sftp の場合以外では、screenがログインシェルのように動
くはず。(bshも同じようにできると思う)
if ( -x `which screen` ) then
if ($?prompt) then
exec screen
endif
endif
(テストしてないのは、かんべんね)
「ログインシェル」というか「インタラクティブシェル」では?
としょーもないツッコミをしてみたり。
screenをログインシェルにするなんてあほ。
727725:04/12/24 13:02:17
あ、すまん、勘違い。
C-aH でログが取れますが、このパーミッションが other と group で readable なのは、
セキュリティ的によろしくないのではないでしょうか?
どう思われますか?
umaskって知っているか?
知ってます。
でも最近のツールはその辺おせっかいなのが多いけどね。
まーscreenは古いツールだけれども。
しっかしman screenしてumaskで検索すりゃ一発だというのに、
セキュリティ的にうんぬんなんていうヤシっていったい…
>>732 そのオプションは作成されるログのpermissionとは無関係
>>728
それはscreenが管理すべきものではなくscreenを実行する際のumaskで管理すべきもの。

一般的にunixアプリケーションでは、ファイルを作る時、特にポリシーが無い場合は
0666でcreateし、umaskで修正されるのを期待する。

セキュリティ的に問題と思うならumask 077すればいいし、
便利なように他の人にも見れるようにしたいならumask 022すればいいし、
超便利なように他の人がエディットできるようにしたいならumask 0すればいい。

screen中で0600でcreateされてしまうと後二つが実現できなくなるので困る。
shell のヒストリなんかは独自にパーミッション変更されるけどね。
まぁ shell の history の場合は超便利にってケースはちょっと思い浮かばな
いからねえ。
そんな御節介なことするshellがあるの?
>>736
(zsh -n + setopt inc_append_history) x (tail -f zsh-history) = chat
739719:04/12/27 09:17:05
SSHでログインしてtopコマンドを実行中にSSHが切れてそのままtopコマンドが
なぜか残ってしまい、割り込み不可能なスリープ状態に陥ってしまうのです。
/dev/pts/ほげ がなくなっているのpts/ほげからの応答待ちになる(と思われる)。
それを防ぐのにscreenを強制的に使わせたいのです。

結局、/etc/profileからSSH_TTYの有無をみてscreen -RRで落ち着きましたわ。
保守
このスレ C-a d
742名無しさん@お腹いっぱい。:05/01/12 03:24:06
最近全然screenが暴走しない^^
無限ループ防止パッチのおかげだろう。
>>742
>>429のですか? パッチを当てても普通に使えてますか?
うん。当ててからぴったりと暴走がなくなった。
screen 起動時に window 名や、コマンドは指定できないですかね?
746名無しさん@お腹いっぱい。:05/01/12 18:58:52
screen -t window-name command args
>>746
早速さんくすです。

イメージしているのは、screen 起動時に、
"foo1" という window 名で、tail -f /var/log/messages して、
"foo2" という window 名で、tail -f /var/log/security して、
"foo3" ・・・ して、
screen は終了しないなんてことをやりたいです。
man と格闘してますが無理っぽいですね。
>>747
できると思うけど,いまいちなにがやりたいかよくわからない.
>>747
.screenrc に書けばいいんでない?
750名無しさん@お腹いっぱい。:05/01/12 19:51:32
source $HOME/.screenrc
screen -t foo1 tail -f /var/log/messages
screen -t foo2 tail -f /var/log/security

と書いたファイルを用意して、

screen -c ファイル名
とすればいいかも
751名無しさん@お腹いっぱい。:05/01/12 19:54:45
migemo組み込んだ人いないの?
>>751
ヒストリバッファの検索に?
コピーモードで検索肢体。
754名無しさん@お腹いっぱい。:05/01/12 22:50:06
組み込みたいけどencodeまわりで挫折しそうだ
755745:05/01/13 02:22:49
>>749-750
おおお>>750さんの言うとおりにできました!!
ありがとうございまーす
コピーモードのキー便度って変えられないの?
757名無しさん@お腹いっぱい。:05/01/13 16:22:45
markkeys
>>757
thx!
コピーモードのE, Bの動きは変えてもらいたい。w, e, bはviと同
じ動きになっているが、E, Bは、Wが使えないからバランスをとろ
うとしているのか、変なところでカーソルが止まる。
ソースをつつくしかないだろうねw
ツンツン
ヤンヤン
763759:05/01/15 00:46:28
Wの機能はたしかに便利だけど、B, Eの挙動を変えてまでWに割当て
る必要があるのか、と思う。
コピーモード内のキーバインドが自由にできればいいんだ
>>764よ ソースを使え そのためのGPL2だ

常にソースが>>764と共にあらんことを
May the Source be with you, Master.
半角カナのコピーって正常にできてますか?
ペーストした際、半角カナ以降の文字が化けてしまうのですが、どのような設定をすれば良いのでしょうか?
今のところ、文字コード関連の設定は
defencoding eucJP
のみです。表示は問題なくできています。わかる方、よろしくおねがいします。
状況説明追加です。jfbterm上でscreenを動かしていて、.screenrcにて
term jfbterm
と設定してあります。よろしくおねがいします。
正常にできてますヨ
漏れも、正常にできてますヨ

端末ソフトかペースト先のソフトの問題じゃないの?
>>769,770
素早い返答ありがとうございます。
今まではw3mとemacsにペーストしてみていたんですが、
vimでやってみたところ正常に表示されました。
実は今の状態のまま一年半ほど放っておいたんですが、ようやく原因がわかってすっきりしました。
ありがとうございました。
772770:05/01/20 01:24:16
>>771
ちなみに漏れは Emacs ではこうしてますヨ
(set-terminal-coding-system 'euc-jp-unix)
w3mにペーストすると半角が全角になる。
774770:05/01/20 15:02:16
>>773
ちなみに漏れは w3m の「JIS X 0201-Katakana を使う」は YES にしてますヨ
>>774
ウホ!いい人!
w3mで半角は見れないものと諦めてまスた。
776名無しさん@お腹いっぱい。:05/01/20 15:50:01
漏れはあえてNoにしてるヨ。半カナは見辛いので。でも0.5以前は無理だったよね。
777775:05/01/20 16:09:02
JIS X 0213:2000(2000JIS) を使う yes
にしたら??も表示できるようになった。
778767:05/01/20 16:21:25
>>772
私もその設定はしてあるんですが、うまく行きません。例えば
キタ━(゚∀゚)━( ゚∀)━(  ゚)━(  )━(゚  )━(∀゚ )━(゚∀゚)━!!!!
を貼りつけると、
7@ィ?ヲ_「
と出て Invalid code points for charset ID 146: 79 14 と怒られます。

w3mの方は、「JIS X 0201-Katakana を使う」がONになっていると半角カナのまま貼りつけられますが、Textboxの後ろが
qnィ雇AF]7+|^@7◎%oe
という感じに化けてます。ついでになぜか色まで付いてます。

jfbtermなしでは正常に表示できているかどうかの確認が困難なのですが、
Invalid code(略)というエラーが出ているので、失敗しているみたいです。
エディタが半角カナ対応してないんじゃないの?
ng-1.5系を EUC で使ってるけど問題なさげだよ?

screen 経由の navi2ch だとどうかな...取り込んでみる: キタ━(゚∀゚)━
780名無しさん@お腹いっぱい。:05/01/20 17:01:06
漏れのemacsは半カナが?になってしまうので全角に変換しとる。
半カナが出現すると引用時に困るのでこれでいいと思ってる。

(setq navi2ch-article-filter-list '(("kcc" "-d"))
navi2ch-board-filter-list navi2ch-article-filter-list)
781767:05/01/20 17:48:12
>>779
Emacs21って、半角カナ対応してます・・・よね、きっと。
ファイルからの読み込みやEmacsの機能を使っての貼りつけはうまく行ってるので、多分対応していると思います。
>>779さんの環境からは「キタ━(゚∀゚)━」と見えているんですか? うーん、なんでだろう・・・

>>780
やっぱりそれしかないですか・・・。
もう少し粘ってみて、自力で解決できなければその設定を使わせていただきます。


本当、素早い返答感謝です。
>>780
echo "defkanji euc" >>~/.screenrc
か?
783770:05/01/20 18:00:51
>>778
もう一個 (set-keyboard-coding-system 'euc-jp-unix) もしてました。これでもダメ?
mlterm や PuTTY ではいけるんだけど、やっぱり jfbterm の方の問題なのかなあ?
vimで正常にできるんだから、emacsの問題でしょ。emacsスレで聞
いたら?
785770:05/01/20 18:07:56
だな。あと、 screen 無しだと再現しないの?
786767:05/01/20 18:34:32
>>782
やってみたけどダメです。たしかdefkanjiがdefencodingになったんだったと思います。

>>783
変わりないみたいです。

>>785
> screen 無しだと再現しないの?
screenを使ってコピーした場合におかしくなるんですが・・・
screen無しというのはmltermとかrxvtでのコピーはどうなるのか、ということですか?
・・・X入ってないんでちょっとわかりません。

>>784
やっぱりそうなんでしょうか? そろそろウザいですね、すみません。
ちょっと向こうで聞いてみます。
>>786
うまくできたら報告してね。
788779:05/01/20 21:05:10
FreeBSD4 で screen4.00.02 で kterm で emacs21.3 で navi2ch で
半角かな見えるです。書けるです。

関係あるかもしれないような気がする部分だけ抜き出しときます。

.screenrc
########################################## EUC のための設定
defcharset B^BIB01
defkanji euc
termcap kterm* eA=\E(B:
terminfo kterm* enacs=\E(B:
termcapinfo kterm* KJ=euc

.emacs
(cond
((= (string-to-int emacs-version) 21) ; Emacs-21.X
(set-language-environment "Japanese")
(set-default-coding-systems 'euc-japan-unix)
(set-terminal-coding-system 'euc-japan)
(set-keyboard-coding-system 'euc-japan)
(setq default-buffer-file-coding-system 'euc-japan)
>>786
Emacs の terminal-coding-system が iso-2022-jp にでもなっているんじゃないの?
(set-terminal-coding-system 'iso-2022-7bit-ss2) してみるとか。
790767:05/01/21 00:43:40
> 試しに cat とかでファイルに落して見てみたら、例えば "_" 、??"\261_"と
> エンコードされて渡ってきていました。
> 本来は "\216\337" とあるべきと思うのですが、2byte 目の 8bit が落ちている
> みたいです。
> Emacs 側では簡単には対応できないと思いますが、screen の設定で変えられませんか?

Emacsスレにて上記の返答をいただきました。
これからmanで調べてみますが、もしわかる人がいたらよろしくおねがいします。
791767:05/01/21 00:53:16
>>788,789
どちらも効果ないみたいです・・・。

.screenrcで関係ありそうな設定というと、
c1, gr, charset 後は terminfo あたりでしょうかね・・・。
>>790
それは EUC-* としては間違ってなさそうだけどな。
793780:05/01/21 01:33:39
半カナなんて見れなくてもいいじゃんw
そもそも半カナなんてバイト単価が高かった時代の遺物だ。
半カナなんか入ってると、引用するときに半カナが含まれているかどうかチェックしないといけないし、
grepとかで検索する時にまた困る。
全角で検索してもひっかからないしね。
表示時に全角に変換してくれたらすむ話。

そういうわけで漏れは半カナ逝ってよし派。
問題のすり替えをしないように
頭が悪い奴が紛れとるな
お子ちゃまはスルー汁
>>790
たしかに2byte目の8bitが落ちてるね。screenのバグか?
半角カナは 2ch AA 用に開発された文字セットです
日本語マニュアルが更新されますた。
http://www.linux.or.jp/JM/html/GNU_screen/man1/screen.1.html
800!
encoding utf-8 ならなんの問題も無い
>>793

>w
>漏れは半カナ逝ってよし

などなど、2ch用語使ってるくせに、、、
2chネラにとって半角カナは無くてはならないものではないのか?

ヽ(`Д´)ノヽ(`Д´)ノヽ(`Д´)ノヽ(`Д´)ノ
>>802
それは全く別の問題だし、自分でプログラム間の整合取ってやれば問題無い。
というか、>>801=586だから
2ch の AA 文化というのは社会現象としても興味深いけど、
MS PGothic のフォント幅などという
はかないものに依存していて刹那的なところにも趣がある。
>>805
そこでMEIRYOフォントですよ。
でも互換性とってMS PGothicも残るのかな。まだまだ先の話だけど。
そういや、mona font みたいなプロポーショナル(?)フォントによる
AA を tty な screen 上で綺麗に見るのは無理だと思っているけど
技があったりします?
>>807
プロポーショナル表示できる端末使え
8eb1と8e31はどっちが正しい「ア」なのだろう?

これが正しい方法なのかわからんが、とりあえず、このパッチで8bit目を落とさなくなる。

*** ansi.c.orig 2005-01-21 11:20:42.000000000 +0900
--- ansi.c      2005-01-21 11:20:46.000000000 +0900
***************
*** 815,821 ****
              if (c == 0x80 && font == 0 && curr->w_encoding == GBK)
                c = 0xa4;
              else
!               c &= 0x7f;
              if (c < ' ' && font != 031)
                goto tryagain;
  #else
--- 815,821 ----
              if (c == 0x80 && font == 0 && curr->w_encoding == GBK)
                c = 0xa4;
              else
!               c &= 0xff;
              if (c < ' ' && font != 031)
                goto tryagain;
  #else
日本語EUCの定義と解説を見る限りは 8eb1 が正しそう。
ttp://euc.jp/i18n/euc-jp.txt
>>809 それは間違った方法だよ

euc-jp環境ならば
^A:encoding eucJP eucJP
ってやれば問題なく半角カナをハンドリングできる
chaliceで書き込むと半角カナが文字化けしていたのは、screenか
らペーストして8e31になっていたせいだった。
ア 8eb1
? 8e31
>>811
それをやっても直らないから767は困っているんだろ?
>>813

>>767の現象は w3mとemacsの設定が原因でscreenは悪くなかったろ?
いきなりアプリを起動した状態で試さないで、まずは
% cat

とやってから実験すれば問題の切り分けができると思うぞ
>>814
>>790を見ればわかるが、screenの問題
うちもeuc-jp環境+screen-4.0.2だが
>>790の現象は再現されなかった 2バイト目のMSBはみんな1だったよ
やはりscreenとは別の原因じゃないか?

ちなみに ^Ai (info) で表示されるencoding設定は
eucJP G0^B[B^BI^D]
だった。
>>817
うーん。なんでだろう。
うちもeuc-jpのscreen-4.0.2で
eucJP G0^B[B^BI^D]
になってるけど、
MSBが0になってる。
screen -c /dev/null
で起動してもそうなる。
stty で istrip されてたりしないか?
stty -a 晒してみるとどうでしょ。
820767:05/01/21 17:42:46
Emacs スレでの指示通り、screen を jis 、Emacs を iso-2022-7bit-ss2 に設定した所、うまくコピーできました。
screen を jis にした上で >>789 をすれば良かったみたいです。

それと、>>790 を貼った時に、screen でコピーしてしまったので一行目がおかしくなってました。正しくは
> 試しに cat とかでファイルに落して見てみたら、例えば "゚" は "\261_"とエンコードされて渡ってきていました。
です。

>>793
私は以前、半角カナが設定ミスで表示すらできなかった時は >>780 の設定を使っていたのですが、
AA がズレまくってしまうことと、古いマシンなので処理に若干なりとも時間がかかってしまうことなどから
できれば半角カナのまま扱いたいのです。

>>815
% cat
した後だと問題なく表示されています。

>>817,818
こちらも eucJP G0^B[B^BI^D] になっています。
821767:05/01/21 17:46:17
>>819
speed 38400 baud; rows 46; columns 133; line = 0;
intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; start = ^Q; stop = <undef>; susp = ^Z;
rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon ixoff -iuclc -ixany -imaxbel
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon -iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke

-istripってことは、無効になってるんですかね。
>>820

> >>815
> % cat
> した後だと問題なく表示されています。

ならば 少なくとも>>820の環境では screenの問題ではないと思われる。
>>790>>820とは別の人の環境の話なんだよね?
みなさんこの結果はどうなります?

% od -txC
ここで「ア」をペースト
C-d

うちではこうなる。
0000000 8e 31 0a
0000003
>>822
ちがうって、emacsは半角カナの2バイト目のMSBが0だとだめなんだ
けど、vimとかcatはそれでも文字化けしない。だからcatで文字化
けしなくても文字コードがおかしくなってる可能性がある。
825817:05/01/21 18:10:25
うちの odはGNUのじゃないから tなんてオプションなかったよ。
しょうがないから GNU od拾ってきた。こうなったよ↓

$ ./od -txC

0000000 8e b1 0a
0000003
$
826767:05/01/21 18:12:45
0000000 8e 31 0a
0000003

ですた
漏れはマウスでコピペ (mlterm) なら 8EB1 だけど screen のコピペだと 8E31 だわ。

MSB 落ちてても適当に処理するソフト (Vim や cat など) もあれば、
律義にチェックしてくれるソフト (Emacs など) もある、ってことなのかな?
828817:05/01/21 18:16:20
>>824
> ちがうって、emacsは半角カナの2バイト目のMSBが0だとだめなんだけど

それは激しく嘘だ!! eucJPなら SS2の次のバイトもMSBを1にしなきゃダメ
だから emacsでeuc-japanとencoding設定すれば MSBが1で問題なく表示できるぞ
むしろ MSBが0だと文字化けすると思われる

現におれはemacs20.7で問題なく使っている
829817:05/01/21 18:18:15
おっと「MSBが0じゃないとだとだめなんだ」って読み間違えた
>>828は忘れてくれ
830817:05/01/21 18:27:32
あ おれも screenのコピペ使ったら
$ ./od -txC

0000000 8e 31 0a
0000003
$

になった
>>827
適当に処理というか何にもやってないだけですね。
832823:05/01/21 21:46:29
>>825>>826>>830
ありがとうございます。
やっぱりscreenが2バイト目の8ビット目を落とすみたいですね。
C-aをターミナルに送るのってどうしたらいいのですか?
>>833
C-a a
さんくし
836名無しさん@お腹いっぱい。:05/01/21 22:50:42
ウハァ
半年間使い続けて来たscreenをデタッチせずに終了させちまった…
死ぬしか無いかな…
>>836
screen -d
>>836
screenプロセスを終了しちゃったってこと?それはご愁傷様。
でなくてdetachせずに端末終了させたってことなら、むしろ普通です。
多分後者だべ
840名無しさん@お腹いっぱい。:05/01/21 23:59:34
なら端末を新たに開いてscreen -rすれば復活するよ
多分前者だべ
ですよね。半年も使ってる強者がデタッチせずに端末終了するぐら
いで動じませんよね。
843836:05/01/22 00:40:54
killしちまったんだょ…
多分偽者だべ
どうでもいいべ
846ギレン総帥:05/01/22 03:03:36
なんか久々にスレが伸びてると思ったらバグが見つかったようだな。

>>767の問題を解決するパッチを作ってみた。
http://www.dekaino.net/screen/01install.html
からダウンロードできる。

たぶん>>809のパッチよりは安全だと思うけど at your own riskで頼む。
847名無しさん@お腹いっぱい。:05/01/22 07:34:57
ギレン総帥の正体はでかいのさんだったのか
>>846
総帥ありがとう。
パッチって本家に commit してるん?
850ギレン総帥:05/01/22 12:29:01
>>849
昨晩、開発者MLに報告メールを投げておいた
それ以上のアクションは何もしてません
おお、素早い。乙です
>>850
ネ申
853名無しさん@お腹いっぱい。:05/01/22 17:17:31
screenって電源落したら
次の起動時に
screen -r
ってやっても復元されないんじゃないの?
電源落したら毎回環境作り直してるんだけど俺の環境がおかしいだけ?
>>853
デフォルトでautodetachになってるから大丈夫なはず。
855854:05/01/22 17:29:29
>>853
電源ってscreenが動いてるマシンか?
それなら無理だ。
856853:05/01/22 17:44:45
>>855
そう、
電源落しても保持するようなことはできないんだよね?
857名無しさん@お腹いっぱい。:05/01/22 17:51:19
さすがに無理ですねw
ハイバネで(ry
sesusp で
860853:05/01/22 18:41:23
だれかローカルで使ってるときはデタッチして電源落したときは
復元できるようにして
プロセスごとにハイバネよろしくメモリを退避させとけって?
screen に仮想マシン搭載するとか。
863853:05/01/22 19:05:21
確かに個人のマシンでは
サーバでなければしょっちゅう電源落すわけだから
再起動後でも復元できれば便利だな
デタッチしたときにどっかのファイルにメモリを書き込んだりできないもんかな?
エロい人お願い 作って
864名無しさん@お腹いっぱい。:05/01/22 19:08:45
いっそのことサーバにするのもテ。
便利・・・かなあ。
あまり用途が考えつかん。
漏れもちょっと・・・
867名無しさん@お腹いっぱい。:05/01/22 19:18:35
便利だと思うけどなぁ〜
昨日使ってたときのログをそのまま使えたりするし
編集中のファイルもデタッチでそのまま行けるし
まぁ、こわれたときのことを考えると想像もつかないけど‥
868名無しさん@お腹いっぱい。:05/01/22 19:22:52
ログもいいけど
漏れの場合は
0は常用シェル、1はEmacs、2はVim、3はw3n・・・
とか区切ってやってるから保持できると個人的に便利
というか、screen で emacs を起動してたら、
emacs のプロセスまるごと保存しないといけないわけよ。
ファイルをオープンしてたり、他のプログラムと同期とってたり
するわけよ。
普通に考えてそんなのできるわけないじゃん。
870名無しさん@お腹いっぱい。:05/01/22 19:28:20
navi2chsてるだけですが?
デタッチなしで電源断越えできるんなら価値はあると思うけど、
子プロセスのメモリって gdb みたいにとってくんの? gdb のそれはよく知らないけど。
シャットダウン時に終了処理したりして退避メモリとのズレが生じたり、
復活後の PID が変わってることによる不整合の可能性もあるような。
>>868
.screenrc に
screen 0 sh
screen 1 emacs
screen 2 vim
screen 3 w3m
じゃだめなのけ?
環境分からんけどLinuxなら可能な限りの環境をUML内に移してハードウェア依存の
最低限のプログラムだけゲストからホストにtelnetするとかはどうだろう?
ハイバネーションのできる仮想環境ならなんでもいいが。
とりあえず各windowごとのshell history を復元できるだけでも
便利っちゃ便利かな?
結構独立性の高いヒストリ抱えてたりしませんか?
>>874
zshでsharehistoryしてるから関係ない。
876名無しさん@お腹いっぱい。:05/01/22 20:58:01
デタッチしたものはどうやったらはきできるんですか?
>>853
がなにをしたいのかよくわからないけど、

>>747-750
あたりの話じゃないの?
logout じゃなくて shutdown で復元か・・・傑作だな
スレのびてるかと思えばこれだよ
いいじゃないか夢があって。
2015年には車が空飛んでるんだから
screenの復元だって可能になるさ。
よし、今なら聞ける!!
screen 0 hoge
とかのときに"cd"ってどうすればいいの?
具体的には bashを起動して"cd /var/log"したいんだけど
どうもうまくいかん
>>881
screen -X chdir /var/log;screen
ありがとう
でも、そうじゃなくって
screen 0 hoge
の hogeのところでやりたいの
要するに、screenの1は 起動したら/var/logの位置に
いるようなことがしたい
screen から起動したとき用の設定ファイルを用意して、
.screenrc には
screen 0 bash --rcfile <screen 用の設定ファイル>
とかどうだろうか
screen 0 sh -c "cd /va/log; bash"
886884:05/01/22 23:11:01
>>885
カコイイ!!
ありがとう・・
そうか・・・ 起動時に渡せばすむ話なのか・・・
馬鹿でごめんなさい
>>881
> よし、今なら聞ける!!
なんかしらんがワロタ
screenもwindows.elみたいな仕組みにしたらいいんだよ
どういう仕組みだよ
891名無しさん@お腹いっぱい。:05/01/23 01:27:04
windows.elではバッファの保存/復元ができるけど、プロセス相手だとそうはいかんよ。
というかwindows.elでも全バッファには対応していない。
ファイルと結びついたバッファと、一部のアプリがつかっているバッファのみだ。
892名無しさん@お腹いっぱい。:05/01/23 01:30:45
>>885
こっちの方がよいと思われ。
screen 0 sh -c "cd /va/log; exec bash"
多分悲しい結果に
chdir /var/log/
screen 0 bash

とか。
そしたら以後すべてのコマンドが/var/logで実行されてしまうよ。
そういうのはstuffにやらせるといいんだよもん
>>892でいいじゃん
あるいは
(cd /var/log; screen 0 bash)
とか
>>897
それじゃだめじゃ。
何がだめなんだか
900899:05/01/23 21:53:36
あ、いいのか、失礼しました。
screenを実行したディレクトリになるのね。
>>893は/va/logへのツッコミとおもわれ
screenをググるときってあんたらなにをキーワードにしているんだい。
gnu を付け加えてるぞい。
つっても、あまり漠然と screen で検索することはないが。
screenrc detach
>>902
screen 3.9 で検索かなぁ。
なんでわざわざ3.9?
4.0が出たのは2003年なんだが…
ハァ?
keycode 94 = F100
string F100 = "^Tp"
keycode 92 = F101
string F101 = "^Tn"

というのを keymap ファイルに書き込んで loadkeys したら、
見事 無変換->prev、前候補->next になった(´Д`)
>>909
なかなかいい設定でつね。
copy modeのキーバインドで、なんでnがあるのにNがないんだ。激
しく不便
912名無しさん@Vim%Chalice:05/02/17 16:17:57
C-A S の分割で、たて分割はできないのでしょうか?
FAQ。無理。実装予定なし。
914名無しさん@Vim%Chalice:05/02/17 18:28:03
リージョン?を C-a S で分割した後、デタッチしてからアタッチすると
分割されていないです。これはしょうがないのでしょうか?
分割状態まで保存されないからね
916名無しさん@Vim%Chalice:05/02/18 11:36:11
でも、マルチアタッチのときは分割されていました。
まぁ、分割状態が残っているからなのか・・・
>>916
されねーべ。
はうぅ〜。私がくっついてくるんですよぉ〜。
heightとか使って分割情報をファイルに落としたらどうにかならないかなあ。
920名無しさん@お腹いっぱい。:05/02/18 15:45:21
つーか分割なんてめったにしねーよ
>>914
screen session じゃなくて controlling terminal(てゆーの?)
の方で持ってる情報だからね(多分)。
端末をresizeしたら分割状態は変わってしまうし、無理そうだね
三つ仮想ターミナルがあって、1と2で上下分割(1がアクティブとする)、
3が裏にまわってる時にC-A C-Pしたら、3と2で上下分割されるかわりに、
分割無しの全画面3になってほすぃ。

まー分かっちゃいるんだが、いつもやったあと気付くんだよ orz
> チラシの裏 2>&1
ある端末エミュ固有のエスケープシーケンスを送りたいのに、 screen に
取られてしまうんだけど、どうしたらいいのかな。
具体的には mlterm に "\x1b]5379;fontsize=10\x07" みたいなのを送りたいんだけど。
925名無しさん@お腹いっぱい。:05/02/19 15:40:00
ESC P
>>925
カラリオから変な文字列が印字されました。
>>925
thx.
ちゃんとmanに書いてあるね。見逃してた。
>>926
ワロタ
zshと一緒に使っていますが、Shift+PgUpで 一画面上に行きたいのです。
どなたか設定している人います?

ktermをscreenなしで使っている挙動とほぼ同じにしたいんです。
Shift+PgUpでどのような文字列が入力されるか知らないが、
^[[9~が入力されるとすると、こんなかんじ。
screen -X bindkey '^[[9~' eval copy 'stuff ^B'

Shift+PgUpで入力される文字列を設定するのはktermの役割
931759:05/02/21 16:12:27
copyモードのキーバインドも変えれることがわかった。

このようにW, E, Bをviと同じにできる。
bindkey -m W stuff hEw
bindkey -m E stuff eEbhe
bindkey -m B stuff bBw

yw, ye, yW, yEはbindのclassを使う。だけど、bindkeyでW, Eを使って
いる場合は、W, Eをbindできない。
bindkey -m y command -c yank
bind -c yank w stuff ' wh '
bind -c yank e stuff ' e '
bind -c yank W stuff ' hEwh '
bind -c yank E stuff ' hEbheh '

問題点は/, ?の検索のときもbindkeyが有効になっていること。
932929:05/02/21 23:43:41
残念ながらShift+PgUpは'^[[9~'ではなかったみたいです。
どうやって調べるかご存知の人いますか?
terminal版のxevみたいなのが欲しいです。
>>932
$ cat
Shift+PgUp

ktermの場合.Xresourcesで設定する。試してないからこれでできる
かわからない。

kterm.VT100.Translations: #override \
  Shift<Key>Page_Up: string("\033[55~")
934名無しさん@Vim%Chalice:05/02/22 14:30:51
teratermを通し、SJISで作業をしているのですが、
screenを起動する前には漢字表示ができ、
screenを起動して、:encoding eucJP としても文字化けします。
他に必要な設定があるでしょうか?
サーバはAIXで、LANGはJa_JPです。
encoding には二つ引数があるわけだが
936名無しさん@Vim%Chalice:05/02/23 14:56:45
>>935
:encoding eucJP eucJP でできました。ありがとうございます。
937929:05/02/24 06:41:20
>>933
できました。ありがとう。

だけど、Shift+Pgupしたときに、
Status Lineに一行出て、一秒くらい待ってから画面移動してしまいます。
こいつをoffか、もしくは待たないようにできれば、完成できそう。

通常モードからコピーモードに入ったときは「Copy mode - Column 24 Line 20 (+1024) (80,24)」
すでにコピーモードに入っているときは「Must be a window layer」と出てます。
>>937
msgminwait 0
939929:05/02/25 05:11:07
>>938
できました。
結構快適です。


screenじゃないktermだと 通常のShift+ Pgup, Pgdnの振る舞いにしたいんですが、
プロセスごとにkterm.VT100.Translationsを変えたり、ktermの再起動なく
置き変えたりとかできるんですか?(Xの話になってしまいますが..)

あと完全にシームレスにするには.. copy modeで Shift+Pgdnで一番下まで戻ってきたときに、
「Copy Modeから出る」なんてできますか?




>>939
プロセスごとに変えるには、プロセスの前にxrdbを実行すればいいかな。
echo kterm.VT100 〜〜 |xrdb -m

>あと完全にシームレスにするには.. copy modeで Shift+Pgdnで一番下まで戻ってきたときに、
>「Copy Modeから出る」なんてできますか?
ムリだと思う。抜けたいときは、qとかC-cとか
hardstatus を %-Lw と %+Lw を使って分割記述していると、バックグラウンドで
動かしていた窓のプロセスが終了してもそれだけでは hardstatus が更新され
ないんだな。%Lw だと即座に更新されるけど
>>941
本当ですね。
943941:05/02/26 12:45:06
検索しても手掛りをつかめなかった。気にする者はあまりいないのかな。
結局、プロセスが終了したのを確認して screen -X redisplay するように
したけど、あまり美しくない解決法だ
944942:05/02/26 13:06:10
>>943
ソースを読んでもわからなかった。screenのソースは読みにくい。
C-a と入力した後
そのC-a と入力したのをキャンセルするのはどうするのでしょうか?
毎回 後3回C-aを入力しているのですが
かなり面倒です すいませんが教えていただけると助かります
よろしくおねがいします
>>945
emacs と同じで C-g とかでいいんでね?連打しても問題なさげだし。
# 無意識にそうしてた...
C-g だと、bell の switch にならんか?
948945:05/02/26 15:31:01
ありがとうございます
C-gはemacsの時に普通にとおるので違うと思いこんでいました
C-a の次の入力はscreenに飲まれるんですねw
やっぱり GNUのはキーバインドがemcasと同じなんですねw
>>947
おおお、知らんかった。
たまに bell の動作が変になるからおかしいなあと思ってたんだけど、
無意識に C-g 押してたからか。
C-g を無効にしとけばいいってことだな
vimを終了した後で、端末に表示されてるものがscreen中かそうでないかで変わります。
1) screen起動してない時・・・vimの表示はクリアされ、vim起動する直前まで表示されていたものとなる。
2) screen起動している時・・・vimの表示がクリアされず、残る
望む挙動は1)です。恐らくscreenの設定次第なのでしょうが、manを見てもいまいちピンときません。
(そもそもvim専用のを1枚用意すりゃ解決とか言われそうですが、そこは見逃して下さい)

先生方、おバカな私に、理解のためのヒントを頂けますでしょうか?
RHEL ver.3 (amd64), Screen version 3.09.15なマシンに、PuTTYでアクセスしています。
altscreen on という話かな
というか、そんなに古いとサポートされてないな
954951:05/02/27 01:18:30
>>952
これです、まさにこれです。
ありがとうございました!おかげでとっても幸せです
大して古くなかったんだな。バージョン番号に惑わされた(w
956929:05/02/27 14:21:18
>>940
ありがとうございました。
やっぱktermは再起動しないとkey bind変えれなさそうですね。
動的にkey bind変えれるTerminal Emulator探してきます。
screenrc で hardstatus に sockname って表示できますか?
hardstatusを2行にするってどうすればいいんだろう。
つーかman読みにくいよorz
>>958
captionとhardstatusを使うとか。
>>959
うお、そんな手があったか。トンクス。
やりたかったのはWindow Listを2段にしたかったんだけど、
Window Listとそれ以外の情報とで2段に分けることで、
とりあえずは満足できそう。

ところで、captionとhardstatus両方つけたらcaptionだけ反転表示で、
hardstatus行が反転じゃなくなってしまった。
両方反転にできるかな。聞いてばっかでスマソ…。orz
>>960
hardstatus alwayslastline "%{=r dd}hogehoge"
>>961
早速ありがとう。
でもそれだとhogehogeは反転するけどhogehoge〜行末までのスペースは
反転しないね。

聞いてばかりでアレなんで、ここからは自分で調べてみます。
どうしてもわかんなかったらまた戻ってくるんでおながいします。
# いや、今までも調べてはいたんだけどね…
# さっぱりわからなくてね…orz
>>962
そうだね。反転は諦めたほうがいいかも。
英語脱落してLinuxの日本語man読んじゃったよ。
最後に%=でhfillしてやることで行末まで反転できました。
教えてくれた人たちありがとん。
>>497の私家版だけど、
screenの-zオプションとcolonのヒストリは便利だと思う。本家に
も取り込んでほしい。
ウィンドウ状態をファイルに書き出す機能も便利だと思うけど、
$HOMEに一時ファイルを作られるのが嫌
>>941-943
気になってたけど %w があれば即更新されるとは知らなかった。
%W でも即更新されるようだ。
%w が入っていれば更新されるので
hardstatus alwayslastline "%?%-w %n %t %+w%:%w%?"
みたいに表示はされないようにしてみた。
%? の条件が偽になることはないと思う。
小細工なしでいけた方がいいけど。
>>966
これはいいことを教えてもらった。おかげで無駄な sleep 処理をなくすことが
できたよ。しかし、今の仕様は意味があってのことなのだろうか。
ソースを見てもよくわからない。
>>966
ナイスアイディア!
969名無しさん@お腹いっぱい。:05/03/11 20:11:55
AIXでロケールがJa_JPになっていて、
encoding SJIS SJIS とすると日本語が表示できますが、
以降 ^A:で文字を入力しようとすると、(IaB なかんじで
asciiコードなのに文字化けします。
普通に端末には日本語ascii問わず入力できます。
何か設定が足りないのでしょうか。
>>969
そこらじゅうで質問すんな
使えんのならAIXなんてつかうなょ
termcapinfo かも知れん。
そうでないかも試練。
~/.screenrc
defencoding eucJP
escape ^z^z
で使用しているのですが、C-z C-x とするとパスワードをきかれます。
ここでは何のパスワードを入力すればよいのでしょうka.
>>972
ログインのパスでしょ。
>>973
ログインのパス入レテモダメッポインデスガ…。
>>974
passwordコマンドで変更してるのでは? 詳しくはman
$ screen -X windowlist | grep hoge
みたいな事がしたいんだけど無理?

$ screen -X select hoge
ってやれば $? に 0 か 1 が入ったりしないかなと思ったけど駄目だった(´・ω・`)
>>976
>>497を使えばできる
patch 当てないでやりたいのでつ。
979名無しさん@お腹いっぱい。:05/03/16 18:35:16
むり
-
test
で、次スレは?