他に知っておきたいことなどをまとめてみました。
Screenが理解するコマンドは、以下のような方法で送ることができます。
screen -lsとすると、現在そのホストで動いている screenのセッションの一覧を見ることができます。
zinnia@iguchi:/tmp/screens[126]% screen -ls There is a screen on: 487.hogetan (Multi, attached) 1 Socket in /tmp/screens/S-zinnia.Screenはセッション管理にUNIXドメインソケットを使っています。 で、そのソケットは/tmp/screens/S-ユーザ名 以下に保存されています。 (build時の設定によってはS-がつかないかもしれません)
複数のセッションがある場合、そのままでは
zinnia@freesia:~[1]% screen -r There are screens on: 487.hogetan (Multi, attached) 47141.hogetan (Multi, attached) There is no screen to be resumed.といった感じでresume/multiできません。ので、 screen -r 487 といったふうに指定する必要があります(上の例では attachedなのでどっちにしてもresumeできませんが)
セッションの識別子は、PID.セッション名となります。 セッション名はsessionnameコマンドで指定可能です。 詳しくはinfoを御覧下さい。
また、複数の端末からmultiモードでscreenをいじっているときは、 ^T*で端末の一覧を見ることができます。
term-type size user interface window ---------- ------- ---------- ----------------- ---------- vt100 80x47 zinnia@/dev/ttyp9 1(azalea) rwx xterm 80x47 zinnia@/dev/ttyp0 3(zsh) rwx
Screenにはウインドウ分割の機能もあります。
しかしemacs(-nw)と一緒に使ってるとemacsのウインドウとscreenのウインドウの 切り替えでキー操作が違うので混乱すること請合いです(^^; なので 私は未だに使いこなせていません。
が、この「複数のWindowを1つの端末で表示」というのは いろいろと可能性を感じさせる機能ではあります。
Screenは点字に対応しているようです。残念ながら 私は点字とそのデバイスについての知識はほとんどないのですが、 点字用スクリーン(DOTSCREEN)に出力することができるようです。 詳しくはソース内のetc/README.DOTSCREENを 見てください。
点字テーブルはGerman、US、GS(???)があります。
私にとっては間違って呼び出してpanicるという方が近いものも(おい)
^Txまたは^T^Xで端末にロックをかけることができます。 ロック用の外部コマンドを呼び出すこともできるみたいです。
正しいパスワードを入力しないとセッションに復帰できません(落とされます)。 まあログインしなおしてscreen -r(または-x)すれば普通に入れるんで、 そこらへんをきちんと理解して使わないと...(infoにも明記されています)
^T^G で、Audible Bell(普通のBeep音)、と、Visual Bellの 切替を行います。Visual Bellは、Beep出力時にステータスに メッセージを出すというものです。
「nethack on」でNethackの世界へ。コンパイル時に無効にされていると 使えませんが...
^T^Fでフロー制御の設定を変えることができます。ステータス表示では -flow, +flow, -flow(auto) となっています。
突然全てのキー入力を受けつけなくなった!!!!!! という場合は +flowの状態で^Sを押した可能性が強いです。あわてず^Qを押して みましょう。
^T^Rで行折り返しの設定を変えることができます。 ステータス表示では-wrap, +wrapとなります。
なんか長い行が切れちゃうんですけどー という場合は +wrapになっているのかもしれません。
cut and pasteを多用していると、たまにペーストのときにse noaiなんとか... などという文字が、コピーした文字列に挟まれてしまったりします。 これなんなんだろうなあーと思っていたんですが、 ふと.screenrcを見ると
# Yet another hack: # Prepend/append register [/] to the paste if ^a^] is pressed. # This lets me have autoindent mode in vi. register [ "\033:se noai\015a" register ] "\033:se ai\015a" bind ^] paste [.]といった設定が。サンプルの.screenrcから貰ってきたので 知らずに設定されていたようです。
つまり、^T]とするところを^T^]してしまうとこれが作動するみたいです。 vi使いならピンと来たんでしょうが... なるほどねえ。