縦分割できるtscreenを使ってみた

tscreenを使ってみました。設定は、基本screenと同じなんですが、ウィンドウ操作系とレイアウト保存の設定を追加しました。

具体的には、以下のような設定をしています。

  • screenの設定はそのままロードして、tscreen部分固有部分だけを.tscreercに記述
  • ウィンドウ分割の方法をvim風にした(bind)
  • ウィンドウのレイアウトを保存する設定を追加した(layout new default)
    • この設定をすることでdetach後にattachした際に、ウィンドウのレイアウトが維持されます

設定

.tscreenrc

#-----------------------------------------
# Load the screen setting
#-----------------------------------------
source ~/.screenrc

#-----------------------------------------
# Save layout
#-----------------------------------------
layout new default

#-----------------------------------------
# Window operation
#-----------------------------------------
bind w eval 'echo "Operate window"' 'command -c REGION'
bind -c REGION ^] command
bind -c REGION j eval 'focus down' 'command -c REGION'
bind -c REGION k eval 'focus up' 'command -c REGION'
bind -c REGION + eval 'resize +1' 'command -c REGION'
bind -c REGION - eval 'resize -1' 'command -c REGION'
bind -c REGION q eval 'remove' 'command -c REGION'
bind -c REGION v eval 'split -v' 'command -c REGION'
bind -c REGION s eval 'split' 'command -c REGION'
bind -c REGION c eval 'screen' 'command -c REGION'

.zshrc
tscreenがパスにあるときだけtscreenを使う設定を追加。

if [ -x /usr/bin/tscreen -o ]; then
   alias screen='tscreen'
fi

使い方

ウィンドウ操作を忘れそうなので、vim風にしてみました。「C-a w コマンド」でウィンドウ操作します。

  • C-a w j or k でウィンドウ移動 (n, pのほうがいいかな?)
  • C-a w + or - で
  • C-a w v or sで分割
  • C-a w q でwindow kill

などなど。他のはbindのところみてもらえれば。

今の使い方

今まではscreen + vimのウィンドウ分割 でしか使ってなかったんですが、screenでの縦分割を使うことで、3ペインにしてコード以外の情報を一度に表示するという使い方ができそうです。

screenでの分割は使い始めたばかりなので、こんな風に分割すると便利だよ!っていうのがあったら是非おしえてください!

開発用途
  • 3ペインにする
  • ウィンドウの分割は、メイン: vim、サブ1: ログ、サブ2: コマンド(テスト、デプロイ)とする
  • サブ2のウィンドウを切り替える

何かを見ながら、開発するということができるので、意外といいかもしれません。

負荷監視用途

メイン: コマンド用、サブ1: iostat、サブ2: vmstat、サブ3: mpstatのように、負荷監視しながら何かをするという用途に使うのもありそうです。

# 最終的にIRCみながら何かするという用途で落ち着いたりして...