備忘録 screenの設定 (気分更新)

screenを導入したので設定等の晒し上げ

■.screenrc

defencoding UTF-8
escape ^z^z
defscrollback 1024
hardstatus alwayslastline
hardstatus string "%{.bW}%-w%{.rW}%n %t%{-}%+w %=%{..G} %H %{..Y} %m/%d %C%a "
shell /bin/zsh


markkeys h=^b:l=^f:$=^e:^d=^v


vbell off
startup_message off
autodetach on


bind -c REGION 2 split
bind -c REGION 1 only
bind -c REGION 0 remove
bind -c REGION o focus
bind x command -c REGION

  • エスケープキャラクタはC-z
  • shellはzshを仕様
  • コピーモードのキーバインドemacsに(C-f, C-b, C-e, C-v)
  • ウィンドウ関連のキーバインドemacs「風」に(C-z x 0, C-z x 1, C-z x 2, C-z x o)
  • startup messageをoff
  • etc

■.zshrcに追加

# screenでsshしたときに新しい仮想画面+画面名をログイン先のホスト名に
function ssh_screen(){
 eval server=\${$#}
 screen -t $server ssh "$@"
}
if [ x$TERM = xscreen ]; then
  alias ssh=ssh_screen
fi

# zsh起動時にscreenの自動起動
case "${TERM}" in
kterm*|xterm*)
  screen
esac

■基本操作(key-bind変更済)
ウィンドウ関連

  • C-z 1..9 n番目のウィンドウに切り替え
  • C-z c 新しいウィンドウを作成
  • C-z A ウィンドウの名前を変更
  • C-z n ウィンドウの切替(昇順)
  • C-z p ウィンドウの切替(降順)
  • C-z w ウィンドウ一覧の表示(常に表示させてるからイラネ)

画面分割関連

  • C-z x 2 画面を分割する(横)
  • C-z x 1 画面を一つにする
  • C-z x 0 画面を閉じる
  • C-z x o 画面を切りかえる

コピーモード関連

  • C-z [ コピーモードの開始
  • C-z ] コピーモードの終了、コピーモードで選択したバッファの貼り付け
  • C-f コピーモード中にカーソルを一つ進める
  • C-b コピーモード中にカーソルを一つ戻す
  • C-n コピーモード中にカーソルを一行下に
  • C-p コピーモード中にカーソルを一行上に
  • C-a コピーモード中にカーソルを行の先頭に
  • C-e コピーモード中にカーソルを行の最後に
  • SPC コピーモード中に領域の選択

■TODO

  • コピーしたバッファをクリップボードに入れる
  • 画面の縦分割 -> バッチ等を当てれば可能みたい

■参考URL
Let's use SCREEN!
http://www.dekaino.net/screen/
GNU screen いろいろまとめ。 - naoyaのはてなダイアリー
http://d.hatena.ne.jp/naoya/20051223/1135351050
つなが〜る - .screenrcを晒してみる
http://mobcov.nowa.jp/entry/d7673576c3