tmuxinatorで一瞬で開発環境を起動する

2012-07-21

前回はdr6kaizさんのpow + rbenvで手軽なRack環境構築でした。

今回はtmuxinatorを使って、コマンド一発で開発環境を起動する話をします。

tmuxinator とは

tmuxinatorとは、tmuxで起動するセッションを予め定義しておき、コマンド一発でそのセッションを起動できるようにしたものです。ちなみに、screenで同じことをするscreeninatorというツールもあります。こちらが先に開発されたようです。

インストール

$ cd
$ gem install tmuxinator
$ echo "[[ -s $HOME/.tmuxinator/scripts/tmuxinator ]] && source $HOME/.tmuxinator/scripts/tmuxinator" >> .zshrc
$ source .zshrc
$ echo $EDITOR
/usr/bin/vi
$ echo $SHELL
/bin/zsh

設定

$ mux new cui-aboutme
# ~/.tmuxinator/sample.yml
# you can make as many tabs as you wish...

project_name: Tmuxinator
project_root: ~/code/rails_project
socket_name: foo # Not needed.  Remove to use default socket
rvm: 1.9.2@rails_project
pre: sudo /etc/rc.d/mysqld start
tabs:
  - editor:
      layout: main-vertical
      panes:
        - vim
        - #empty, will just run plain bash
        - top
  - shell: git pull
  - database: rails db
  - server: rails s
  - logs: tail -f logs/development.log
  - console: rails c
  - capistrano:
  - server: ssh me@myhost

起動

$ mux cui-aboutme

カスタマイズ例

# ~/.tmuxinator/sample.yml
# you can make as many tabs as you wish...

project_name: cui-aboutme
project_root: ~/workspace/rails/cui-aboutme
tabs:
  - main:
      layout: tiled
      panes:
        - git fetch --prune && git status --short --branch
        - curl http://cui-about.me/users
        - tig
  - vim: vi
  - app:
      layout: even-horizontal
      panes:
        - rails c
        - powder log
  - test: guard

tips

bind-keys C-b kill-session

おまけ