サーバにsshで接続してターミナルで作業とかに必須のtmux。
万一ネットワークが切断しても作業再開できるし、一つのターミナルで複数画面を表示できる。
ただそのままだと新規にセッションを立ち上げた際に、画面を分割してその後にサイズ調整してってめんどくさいよね。
だったら、毎回手動で行わずに自動で行えるようにしてしまおうぜ!
今回は画面上側をメインの作業領域としてエディタなどを起動して使用。
下側のウィンドウを左右に分割して左側をコマンドなどを実行する領域。
右下はデーターベース接続などサブでコマンドを実行する領域としたい。
なので、上側のウィンドウをどどーんと大きくし、右下より左下のほうが大きくする。
画面を分割してサイズを指定する
tmuxを起動時に分割表示してサイズ調整も行う方法を明記。
セッションを新規に作成する際に読み込むように以下のファイルを作成する。
ホームディレクトリに.tmuxディレクトリを作成し、分割&リサイズ処理を明記したファイルをnew-sessionと命名したテキストファイルに作成する。
環境や好みによって高さや幅は変更するといい。
内容は以下の通り。
# 一番初めのpaneを選択
select-pane -t 0
# 上下にウィンドウを分割する
split-window -v
# 1番目(下側)のウィンドウを選択
select-pane -t 1
# 左右にウィンドウを分割
split-window -h
# メインとなるウィンドウの高さを35行に設定
setw main-pane-height 35
# 上下分割レイアウトを反映
select-layout main-horizontal
display-panes
# 2番目(右下)のpaneの横幅(境界)を右に22文字幅移動する
resize-pane -R -t 2 22
自動で分割処理を行うエイリアス設定
tmux new-session \; source-file ~/.tmux/new-session
コマンドを実行する様にすればok!
tmuxが起動していない場合にtmuxコマンドが実行され、かつattachできない場合に新規にセッションを立ち上げて分割設定処理を反映させる。
あと tmux -2
とする事で、tmux上のvimとかもろもろ256色表示で使えちゃう!!
~/.bashrcに以下の通りに設定すれば反映される。zshで使う場合も ~/.zshrc に同じ内容で。
# tmuxが起動していない場合にalias設定を行う
if [ $SHLVL = 1 ]; then
# tmuxにセッションがなかったら新規セッションを立ち上げた際に分割処理設定を読み込む
alias tmux="tmux -2 attach || tmux -2 new-session \; source-file ~/.tmux/new-session"
fi
これで source ~/.bashrc
なりを実行して反映させれば自動化完了だ。
tmux
コマンド実行だけで復帰または分割画面で新規起動を勝手にしてくれる!!