先前的博文介绍过tmux,极大的提高了远程登陆linux server的操作效率。但是tmux在系统重启后,所有的tmux session都会被消除,你分好的window pane, 所有的环境设置都没有了。这对于基本不关机的server问题不大,但是开发者如果想在自己的机器上使用tmux, 就不得不面对怎么在系统重启后恢复tmux session的问题。
tmux的快捷键,状态栏,配色等等都是可配置的,而tmux session却不是通过配置文件建立的,而是通过一系列tmux命令来操作的。可以把一系列的tmux操作写入一个shell脚本,每次运行这个脚本来建立相同的session,这就变相的实现了恢复session的功能。当然这需要用户相当了解tmux的命令并花不少经历维护这个脚本,我一直也没有写出一个顺手的tmux脚本,直到发现了tmuxinator。
tmuxinator是一个用ruby写的工具,具体功能就是通过YAML文件配置一个tmux设置,tmuxinator根据配置文件运行相应的tmux命令,建立tmux session。
##tmuxinator的安装和使用
tmuxinator依赖与Ruby, 通过gem安装非常方便。
1 | gem install tmuxinator |
tmuxinator 需要用户定义用来打开配置文件的editor,在.bashrc中加入
1 | export EDITOR='vim' |
tmux的窗口编号默认是从0开始的,而在大部分键盘上主键区,数字键都是按1234567890排列的,切换到0号窗口很不方便,可以在~/.tmux.conf
中加入如下两行,让tmux的窗口编号从1开始。
1 | set-option -g base-index 1 |
常用tmuxiantor操作如下:
1 | mux new [PROJECT] # 新建一个project |
##tmuxinator的配置文件
1 | name: Tmuxinator |
tmuxinator配置文件结构很简单,每个session的配置被看做一个project, 根据需要配置好路径,windowns 和panes就可以工作了。
其中panes的layout可以是tmux定义的5种标准的layout:
- even-horizontal
- even-vertical
- main-horizontal
- main-vertical
- tiled
你可以也定义自己的layout。