- 16
- Feb
去年开始学用Tmux之后,顺便开始使用Tmuxinator这个工具来组织开发环境。简单的说,用这个工具可以用一条命令就打开一个可以立即展开工作的Tmux Session,里面有N个已经准备好的Window,分别对应Server、Editor、Git等。
但是Tmuxinator已经很久没有更新了,而且配置性稍微弱了一点点,对Ruby/RVM项目比较友好,对Python/Virtualenv的支持就差了点。
后来,我发现了Teamocil这个取代它的好工具。
Teamocil的安装方式和Tmuxinator一样,也是通过「gem install teamocil」安装。相对于Tmuxinator,Teamocil更加灵活,没有直接与Ruby/RVM有关系,因而非常容易针对不同的项目进行组织。
以本站IMTX为例,一个基于Python/Virtualenv的Django App。Tmux开发环境的配置文件如下(~/.teamocil/imtx.yml):
session:
name: 'imtx'
windows:
- name: "server"
root: '~/.virtualenvs/imtx.me/imtx'
filters:
before: workon imtx.me
after: ./manage.py runserver
splits:
[splits list]
- name: "vim"
root: '~/.virtualenvs/imtx.me/imtx'
filters:
before: workon imtx.me
after: vim imtx
splits:
[splits list]
- name: "shell"
root: '~/.virtualenvs/imtx.me/imtx'
filters:
before: workon imtx.me
after: git status
splits:
[splits list]
- name: "pyshell"
root: '~/.virtualenvs/imtx.me/imtx'
filters:
before: workon imtx.me
after: ./manage.py shell
splits:
[splits list]
- name: "dbshell"
root: '~/.virtualenvs/imtx.me/imtx'
filters:
before: workon imtx.me
after: ./manage.py dbshell
splits:
[splits list]
这个配置文件主要是:
- 建立一个名为imtx的Tmux Session,里面有server、vim、shell、pyshell、dbshell等这些window;
- 每个window的root都定位到「~/.virtualenvs/imtx.me/imtx」这个开发路径,同时通过「filters/before」指令进入virtualenv环境;
- 其中server这个window会跑起测试环境:runserver,vim则是打开编辑器,其他的如dbshell则是进入数据库的shell;
简单的说,每次我要进入开发状态时,只要打开tmux,然后执行「teamocil imtx」,大约几秒后,这么一个开发环境就会给我准备好了:
这样,你就可以在server看开发服务器的输出,vim里面写代码,shell里面操作文件,pyshell里面操作Python代码,dbshell里面操作数据库…所有的这一切,都能在几秒内给你准备好。
理论上,Teamocil可以针对任何命令行开发环境进行适配,而且还能配置Tmux窗口分割功能(通过splits),用它来管理基于命令行的工作区将是又方便又灵活。
大家还有更好的工具和更懒的方式推荐吗?


求tmux的外观配置。。。。
能根据某次运行的窗口列表生成配置么?
抢个前排
话说这个东西可以和byobu搭配吗?
话说能share一下您的tmux的conf文件么?