gnu screen (vim study #1)
DESCRIPTION
株式会社ビープラウドの勉強会BPStudy外伝として行われたVim studyの資料です。TRANSCRIPT
GNU screen
vim study/BP Study外伝 #01
shin(no)suke sato(id:shin_no_suke)
1
GNU screenとは?
•仮想端末管理ソフト
• http://www.gnu.org/software/screen/
2
あなたがscreenを覚えないことがバカらしいたった一つの理由
3
(学習)コストパフォーマンスが高い
4
vim
zsh screen
変態。付き合いづらい
もっと変態。付き合いづらい
いい奴。付きあいやすい
付き合いやすさ
5
STEP0: 設定$HOME/.screenrc
defencoding utf8escape ^z^zhardstatus alwayslastline '%{= kG}[ %{G}%H %{g}][%= %{=kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B}%Y-%m-%d %{W}%c %{g}]'startup_message offdefscrollback 50000vbell off
6
STEP1: 起動
$ screen
7
STEP2 :仮想端末起動・切り替え
<C-z>c # 起動
<C-z>K # 終了
<C-z>端末の番号(0,1..) # 移動
8
STEP3:ウィンドウ分割
<C-z>S #分割
<C-z><Tab> #移動
<C-z>Q #分割解除
9
STEP4 : コピーモード
コピーモードとは現在の端末を一つのテキストファイルのように扱い、現在の端末の表示から消えてしまった後方箇所へバックスクロールしたり、特定の箇所をコピーして、現在のshellでペーストしたりすることができるモード。コピーモード中の移動に関してはviライク。
10
STEP4-1: 切替と移動
# コピーモード切り替え
<C-z><ESC> or <C-z>[
# 移動・検索(vim ライク)
<C-f>,<C-b> ?,/ hjkl
11
STEP4-2 :コピー・ペースト
<C-z><Space> -> (移動) -> <C-z><Space>
<C-z>Y # 現在の行をコピー
<C-z>] #ペースト
# コピー(開始・終了位置指定)
12
STEP4-3 :補足
•コピーモードを個人的によく使うのが?(後方検索)。例えばmysqlとかでテーブルが1000個くらいあるとshow tablesして後方検索で探したりできる
13
STEP5 : デタッチとアタッチ
screenの状態を保存して後で復帰させることができる。例えば
• 途中で切断された場合自動でデタッチ、もう一度接続してアタッチ
• 帰宅時にデタッチ、出社時にアタッチ
14
STEP5-1 : デタッチ
<C-z>d # デタッチ
$ screen -ls # デタッチされた一覧
15
STEP5-1 : アタッチ
# アタッチ
$ screen -r <プロセス番号 or 名前>
# 名前をつけてアタッチ
$ screen -S hoge -> screen -r hoge
# 一番最近のデタッチでアタッチ(?)
$ screen -r -R
16
まとめ•仮想端末起動・切り替え
•ウィンドウ分割
•コピーモード(コピー)
•デタッチ、アタッチ
•いい奴
17