screenのメモ
リージョンの分割やセッションのアタッチ・デタッチができたりなど、なにかと便利なscreenですが機能はそれくらいしか知らず、全く使いこなせていなかったので、これを機会に少し調べてみたのでした。
完全に使いこなせるようになるにはどれくらいかかるかな……!
環境:Ubuntu 10.10 64bit / Screen version 4.00.03jw4 (FAU) 2-May-06 / man screen
設定の上書き
$ screen -c file
$HOME/.screenrc に上書きする形でfileに渡されたファイルの設定を適用する。
セッション
screenを起動中に
$ screen -d
をするとデタッチされる。(または (C-a d) を入力する)
セッションをアタッチする場合には
$ screen -r
を実行する。セッションが複数ある場合は $ screen -r プロセスID で指定する。
セッションの個数やプロセスIDの調べ方は、
$ screen -ls
で。(もしくは $ screen -list で)
ウィンドウ
1つの端末内で複数のウィンドウを起動(C-a c)できたりなど。
ウィンドウの選択は(C-a ')でプロンプトが表示され(0..9を入力してEnterで移動)、
(C-a ")だと一覧で表示される(jkもしくはカーソルキーで上下移動)。
(C-a w), (C-a C-w)では表示のみ。(切り替えはできない)
(C-a [0..9])で直接そのウィンドウに移動することも可能。
(C-a SPACE), (C-a n), (C-a C-n)で次のウィンドウへ移動する。
(C-a BACKSPACE), (C-a h), (C-a p), (C-a C-p)で前のウィンドウへ移動する。
(C-a -)でブランクウィンドウが表示される。
(C-a k), (C-a C-k)でカレントウィンドウを削除する。( $ exit と同じ?)
(C-a l), (C-a C-l)でウィンドウの再描画をする。
(C-a A)でそのウィンドウのタイトルを変更。
(C-a r), (C-a C-r)で折り返しの切り替え。
リージョン
(C-a S)で縦分割(Vimでの (^W s)、xyzzyでの (C-x 2))
(C-a |)で横分割(Vimでの (^W v)、xyzzyでの (C-x 5))*1
(C-a TAB)で分割したリージョンの移動。
(C-a X)でカレントリージョンの削除。
(C-a Q)でカレントリージョン以外の削除。
コピー
(C-a [), (C-a C-[), (C-a ESC)でコピーモードに入る。
キャレットの移動はVi風のキーバインド(h,j,k,l,0,^,$,g,G,w,b,e,W,E,^F,^B)で。
検索もVi風の(/, ?)で。ただし(n, N)で移動はできない。
マーキングは(SPACE)で。マーキングは始点を決めたあと、終点で再度(SPACE)を押すとコピーされ、コピーモードを抜ける。
その行すべてを選択する場合は(y)で。行をコピーしてコピーモードを抜ける場合は(Y)を。
(v)で":set nu"と":set nonu"ができるみたい?
ペーストは(C-a ])で。
まだまだ機能はあるけど、とりあえずこんなところかな?最初はこれらを普通に使えるようになろうかな。
追記
ちょっと見辛いのでリストにしてみた。
キーバインド | 動作 |
---|---|
C-a ? | キーバインド一覧 |
C-a d | デタッチ |
C-a c | ウィンドウの起動 |
C-a ' | ウィンドウの選択 |
C-a " | ウィンドウの選択 |
C-a w, C-a C-w | ウィンドウ一覧 |
C-a [0..9] | ウィンドウ切り替え |
C-a SPACE, C-a n, C-a C-n | 次のウィンドウへ移動 |
C-a BACKSPACE, C-a h, C-a p, C-a C-p | 前のウィンドウへ移動 |
C-a - | ブランクウィンドウの表示 |
C-a k, C-a C-k | カレントウィンドウを削除 |
C-a l, C-a C-l | ウィンドウの再描画 |
C-a A | ウィンドウタイトルの変更 |
C-a r, C-a C-r | 折り返しの切り替え |
C-a S | 縦分割 |
C-a (縦棒) | 横分割 |
C-a TAB | 分割したリージョンの移動 |
C-a X | カレントリージョンの削除 |
C-a Q | カレントリージョン以外の削除 |
C-a [, C-a C-[, C-a ESC | コピーモードに入る |
C-a ] | ペースト |