tmuxinatorで快適なtmux生活を![tmux][tmuxinator][Ruby]
以前からものは知っていて気になってはいたのですがやっと使えてとても便利だったのでまとめようと思います。
なお、tmuxに関しては今回の記事としてはおいておくこととします。 使ったことが無い方は是非使ってみてください!便利です。
tmuxinatorとは
tmuxinator/tmuxinator · GitHub
tmuxinatorは、簡単にいうと「好きなtmuxの画面構成をいつでも瞬時に構築できるようにする」ツールです。
これさえあればいつでもすぐに自分にとって最適な画面分割にできますし、加えてコマンドの実行までできます!素晴らしいです。
早速導入してみましょう。
インストール
インストールには以下のコマンドを叩きます。
$ gem install tmuxinator
これでインストール自体はおしまいです!
簡単な設定
エディターの設定
エディターを用いるため、環境変数をexportしておきます。
$ export EDITOR='vim'
シェルの設定
まずはtmuxinator用のディレクトリを作成します。
$ mkdir ~/.tmuxinator
shellに応じた設定ファイルを https://raw.githubusercontent.com/tmuxinator/tmuxinator/master/completion/ からダウンロードして、shellに反映させます。
zshの場合、以下のようにします。
$ export SHELL='zsh' $ wget https://raw.githubusercontent.com/tmuxinator/tmuxinator/master/completion/tmuxinator.zsh $ mv tmuxinator.zsh ~/.tmuxinator/ $ echo 'source ~/.tmuxinator/tmuxinator.zsh' >> ~/.zshrc
ここまで出来たら、インストールは完了です。 次のようにコマンドを実行すると、インストールが正常にできているかどうかをチェックすることができます。
$ mux doctor Checking if tmux is installed ==> Yes Checking if $EDITOR is set ==> Yes Checking if $SHELL is set ==> Yes
全部Yesになっていれば準備OKです!
使ってみる
いよいよ実際に使ってみましょう。
tmuxinatorのプロジェクトを作成する
次のコマンドを実行すると、tmuxの設定をひとまとめにするプロジェクトを新規作成することができます。
$ mux new [プロジェクト名]
例えば、
$ mux new sample
としてみます。
実行するとまずエディタが立ち上がりますが、一旦そのままcloseしましょう。
エディタが編集しようとしたものがtmuxinatorのプロジェクト設定ファイルで、~/.tmuxinator/sample.yml
として保存されています。
このファイルを好きなように編集すれば好きな様にtmuxを操ることができます!
プロジェクト設定ファイルを編集する
設定ファイルを編集するには、以下のコマンドを実行します。
mux open sample
まぁ普通にエディタで開いてもOKです。
# ~/.tmuxinator/sample.yml name: sample # プロジェクト名を記述します root: ~/ # rootディレクトリの指定します # Optional tmux socket # socket_name: foo # tmuxのソケットの指定が必要な場合に使用します # Runs before everything. Use it to start daemons etc. # pre: sudo /etc/rc.d/mysqld start # tmuxinator実行時に実行するコマンド群を記述します。複数行でも大丈夫です! # pre: # - hoge # - fuga # - foo # - bar # Runs in each window and pane before window/pane specific commands. Useful for setting up interpreter versions. # pre_window: rbenv shell 2.0.0-p247 # pre: のwindowやpaneを開く直前バージョンです # Pass command line options to tmux. Useful for specifying a different tmux.conf. # tmux_options: -f ~/.tmux.mac.conf # tmuxコマンドを実行するときにオプションを設定しておくことができます # Change the command to call tmux. This can be used by derivatives/wrappers like byobu. # tmux_command: byobu # 呼び出されるtmuxコマンドを変更することができます。 tmuxではなくbyobuを使いたいときなどに使用します。 windows: # ここの下にwindowの設定を並べていきます。 - editor: # windowに名前を付けます # tmuxのlayoutを指定できます。(ex. main-vertical、tiled) # tmuxのlist-windowコマンドで表示された数値をコピペることでの指定でもできます (ex. 8b89,238x56,0,0{118x56,0,0,0,119x56,119,0,5}) layout: main-vertical panes: # ペイン分割を行います。各ペインに対してそれぞれ好きなコマンドを実行できます! - vim # vimを実行したり、 - guard # guardを実行したり。 - server: bundle exec rails s # 2つめのwindowの設定を書きます。 ペイン分割等がなければそのまますぐにコマンドをかけばおしまいです。 - logs: tail -f log/development.log # 3つめ。
このような設定項目があるので好きなtmuxの設定にしていきます。終わったら保存して終了。
tmuxinator発動
プロジェクト設定ファイルの編集が終わったらいよいよ起動です!
$ mux sample
このコマンドを実行すると先ほど書いたプロジェクト設定ファイルを元にしてtmuxが立ち上がり、いつでも好きなレイアウト&実行してほしいコマンドが全て実行されたtmuxが手には言います!!
立ち上がった時はめちゃくちゃ便利!と思うこと間違いなしです:)
終わりに
tmuxinatorはちょっと使い方を覚えるだけでめちゃくちゃ便利になるので相当助かります。例えば
- 仕事用プロジェクト
- 趣味用プロジェクト
- 複数台サーバ用プロジェクト
などといった様にプロジェクトを分けたりするとより捗るかな、と思います。
list-windowの値を用いる事によって複雑なペイン分割にも対応できているのはすごく嬉しいですね。
tmuxinatorで、快適なtmux生活を!