縦分割できる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みながら何かするという用途で落ち着いたりして...