ターミナルマルチプレクサのtmuxを使いたい。そのメモ書き。
tmuxのインストール
$ sudo brew install tmux
言葉の定義
- session
- 一つのsessionは複数のwindowから構成
- window
- 一つのwindowは複数のpaneから構成
- pane
- 一つの作業領域(ターミナル)のこと
設定ファイル
~/.tmux.conf
基本の使い方
プレフィックスキーを押してからコマンドを入力する。
プレフィックスキー、コマンドは設定ファイルで変更可能。
やりたい事 | コマンド |
---|---|
現在存在するsession | tmux ls |
sessionにアタッチ | tmux a -t <session name> |
最後に作成したsessionにアタッチ | tmux a |
sessionをデタッチ | <prefix> d |
sessionを削除 | tmux kill-session -t <session name> |
最後のsessionを削除 | tmux kill-session |
ウィンドウ作成 | <prefix> c |
ウィンドウ名変更 | <prefix> , |
ウィンドウ一覧表示 | <prefix> w |
ウィンドウ(番号1(2,3,…))へ移動 | <prefix> 1(2,3,..) |
前のウィンドウへ移動 | <prefix> p |
次のウィンドウへ移動 | <prefix> n |
最後に操作したウィンドウへ移動 | <prefix> l |
ウィンドウの強制終了 | <prefix> & |
paneの横分割 | <prefix> “ |
paneの縦分割 | <prefix> % |
paneの強制終了 | <prefix> x |
pane間の移動 | <prefix> o |
コピーモード | <prefix> [ |
コピーモードの始点 | Space |
コピーモードの終点 | Return |
貼り付け | <prefix> ] |
tmuxのupgrade
tmux 1.7以上でないとtmuximnatorが使えない。正確にはウィンドウが一個しか開かない。参考
バージョン確認すると
$ brew version tmux tmux 1.6
そこでupgradeする。その前にAppleデフォルトのgitのバージョンが古い。
homebrewのgitに変更する
$ brew install git $ echo "alias git='/usr/local/bin/git'" >> ~/.bashrc $ git --version git version 1.9.1
gitをイニシャライズしていなかったのでhomebrewのupgradeが使えなかった。
$ git init $ git status $ brew upgrade tmux
そのままやるとversion 1.9aがインストールされた。
$ tmux -V tmux 1.9a
これはバグが多いらしい。そこで前のバージョンに戻す。
参考
$ brew remove tmux $ cd /usr/local/Library/Formula $ git checkout c356bf7 /usr/local/Library/Formula/tmux.rb $ brew install tmux
これで安定版。
$ tmux -V tmux 1.8
tumx 1.8 からはcopy-pipeが導入されていて、viのコマンドのようにコピペ出来るみたい。参考
そこで、tmux.confに以下を追加
# Use vim keybindings in copy mode setw -g mode-keys vi # Setup 'v' to begin selection as in Vim bind-key -t vi-copy v begin-selection bind-key -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy" # Update default binding of `Enter` to also use copy-pipe unbind -t vi-copy Enter bind-key -t vi-copy Enter copy-pipe "reattach-to-user-namespace pbcopy"
tmuxinatorのインストール
$ gem install tmuxinator
$SHELL, $EDITORが設定されている必要あり
$ echo 'export EDITOR=/usr/bin/vim' >> ~/.bashrc $ source ~/.bashrc $ echo $EDITOR /usr/bin/vim $ echo $SHELL /bin/bash
PATHの設定
$ gem which tmuxinator echo 'PATH=/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/gems/1.9.1/gems/tmuxinator-0.6.7/bin:"$PATH"' >> ~/.bashrc
tmuxinatorのプロジェクト作成
tmuxinatorはtmuxのwindowやpaneのデフォルトを変更するためのソフトruby製。よってgemでインストールする。
$ gem install tmuxinator
パスを通す
echo 'PATH=/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/gems/1.9.1/gems/tmuxinator-0.6.7/bin:"$PATH"'
プロジェクト(デフォルト)の作成
$ mux new projectA
できた~/.tmuxinator/projectA.ymlをいじる。もしくは
$ mux open projectA
tmux全般についての参考文献
- http://qiita.com/naoty_k/items/869b00fdde27c2225989
- http://d.hatena.ne.jp/akishin999/20121204/1354621657
- http://yuzuemon.hatenablog.com/entry/20110204/1296755589
- http://d.hatena.ne.jp/sa__i/20120409/1333991003
- https://codeiq.jp/magazine/2014/01/5143/
- http://room6933.com/mymemo/tmux/tmux-basic.html#id10
- レイアウト参考1