PCの再起動後にTmuxのwindowやpaneを自動的にある所定のものにしたい。tmux-resurrectとtmux-continuumを試した試したがうまい具合にシャットダウン前の状態にしてくれないケースがあったので、それなら常に同じ状態からスタートした方が効率が良い気がしてきたので、そのような運用にしてみる。
tmuxのwindow作成などはtmuxコマンドから呼べるので設定ファイルを書くことができる。starttmux.shというスクリプトを作ってこれを.bashrcから呼べば良い。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
session="work" tmux has-session -t $session 2>/dev/null if [ "$?" -eq 1 ] ; then # set up tmux tmux start-server # create a new tmux session, starting vim from a saved session in the new window tmux new-session -d -s $session # Select pane 1, set dir to api, run vim tmux selectp -t 1 tmux send-keys "cd ~/git/Gauss; rails s" C-m # Split pane 1 horizontal by 65%, start redis-server tmux splitw -v -p 50 tmux send-keys "cd ~/git/Gauss; rails c" C-m # create a new windows tmux new-window -t $session:1 tmux send-keys -t $session:1 "cd ~/git/Gauss; vim -S $HOME/.vim/sessions/gauss.vim" C-m tmux new-window -t $session:2 tmux send-keys -t $session:2 "cd ~/git/Gauss" C-m else echo "session found. connecting..." fi # return to main vim window tmux select-window -t $session:2 # Finished setup, attach to the tmux session! tmux attach-session -t $session |
*C-m
はtmuxでの改行
でこれを.bashrcの末尾追加すれれば毎回同じtmuxからスタートできる。
1 2 |
# attach automatically when it's opened [ -z "$TMUX" ] && . "$HOME/starttmux.sh" |
2018-09-15
[…] tmuxで指定したwindow/paneから始める方法 [再起動も安心]を説明したが、Vimのセッション情報もタブを含めてRestoreしたい。 最初は全て自動で保存しようとしたが、必要に応じて自分でセッションを保存した方が実用的。ブラウザのタブのように、使わないタブが残ってしまい必要のないタブが溜まっていってしまう。 […]