1分で実現できるtmuxのTips x3 (ついでにinstall to Mac,CentOS,Debian/Ubuntu)



日頃お世話になっているtmux。

インストールしたままの状態でもそれなりに使いやすい状態なのですが、
個人的に最初に導入すると便利なTips x3を紹介させていただきます。
Tips1つにつき1分で実現できる..はず！


Mac/CentOS/Debian/Ubuntuでのインストール方法は記事の末尾に記載。

今回紹介するTips用のconfとスクリプトはこちら
https://github.com/nntsugu/99.etc/tree/master/dot_files/tmux


#0.Tips紹介の前に

もいちど書きますが、Mac/CentOS/Debian/Ubuntuでのインストール方法は記事の末尾に記載しています。
以前書いたtmux紹介スライドはこちら
http://www.slideshare.net/nntsugu/tmux-13463284

----

全てのコマンドはtmuxを起動してからのTipsです。

```
$ tmux
```

でtmuxが起動できます。

----

文中の "prefix" と書かれている箇所は、
tmuxのコマンドを入力する際のおまじないです。

* デフォルトだと Ctrl + b
* 私の.tmux.confだと Ctrl + z

```
prefix + c
```
は
Ctrl + b (or Ctrl +z)
を押してから
c
を押すことを指します。




#1.new-window + sshをお手軽に
新しいwindowを作り、sshをする場合

```
$ prefix + c
$ ssh {target host}
```

と2手間かかるところを1手間にします。



```:.tmux.conf
#new-window + ssh
unbind-key s
bind-key s command-prompt "new-window -n %1 'ssh -t %1'"
```

.tmux.confに上記を追記し

```
$ prefix + s
```

すると表示されるバーにssh対象ホストを入力すればOK

![Screen Shot 2013-12-01 at 8.47.40 PM.png](https://qiita-image-store.s3.amazonaws.com/0/14859/ad4c4779-4c4e-d544-76fc-63cf0356c72f.png)


もしくは、下記のようにコマンドをscriptにしちゃいます。

```:sssh
#!/usr/bin/env bash
tmux new-window -n $@ "exec ssh $@"
```

上記をssshというファイル名で保存してpathを通し、ssshコマンドとして使用しています。
参考:https://github.com/nntsugu/99.etc/blob/master/dot_files/tmux/bin/sssh


```:スクリプト一例
# sssh を ~/bin/sssh に保存し、PATHを通す
$ export PATH=$PATH:~/bin
```




```:使い方例1
# ec2.ubuntu という名前でwindowを作りつつ、ec2.ubuntuにssh接続する
$ sssh ec2.ubuntu
```


```:使い方例2
# 複数のホストにまとめて new-window + ssh (bashの場合)
$ for h in targethost1 targethost2 targethost3 ; do sssh ${h} ;done
# ホストリストをcatして接続する事も出来ます。
$ for h in `cat hostlist` ; do sssh ${h} ;done
#hostlistの中身
targethost1
targethost2
targethost3
```


#2.windowの移動をカーソル(⬅➡)で
デフォルトのwindow移動は

```
# 次のwindow
$ prefix + n
# 前のwindow
$ prefix + p
```

これをカーソルの左右(⬅➡)で出来るようにします

```:.tmux.conf
# cursor
bind -n Right next-window
bind -n Left previous-window
```

#3.status-barの色を見やすく変更
デフォルトだと緑背景に黒字のwindow名。
今いるwindowがわかりにくいので変更してしまいます。

## before
![Screen Shot 2013-12-01 at 8.11.10 PM.png](https://qiita-image-store.s3.amazonaws.com/0/14859/16511d2d-0083-4e69-56c5-5aee2bf41db5.png)

## after
![Screen Shot 2013-12-01 at 9.30.30 PM.png](https://qiita-image-store.s3.amazonaws.com/0/14859/7dbf36f5-6762-82d1-950e-4dc737671900.png)


今いるwindowが赤背景になっています。





#インストール
##Mac
とても簡単。

```
$ brew install tmux
```

これだけでOK
##CentOS
yumのrpmforgeリポジトリを登録し、

```
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
rpm -ivh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
vim /etc/yum.repos.d/rpmforge.repo
# enabled=0にする
```

yum install するだけ

```
yum install --enablerepo=rpmforge tmux
```

参考: http://qiita.com/tt_yamaguchi/items/682940d558e4a5022898
##Debian/Ubuntu
最近のバージョンであればデフォルトでインストールされていますが、バージョンが1.6と古いです。
1.8をインストールする方法を紹介します。

正しい情報をiwaim@githubさんから教えていただきました。ありがとうございます！

iwaim@githubさんのコメント (http://qiita.com/nntsugu@github/items/107cbd6cd6db2aa46172#comment-ce843c266b73f11cd606) より引用。
>Ubuntuの方はPPAリポジトリで良いと思います。ppa:pi-rho/devはUbuntuのいくつかのバージョンを想定したパッケージが用意されているっぽいですし。
>
>つまり、
>Ubuntu: ppa:pi-rho/dev
>Debian: Debian Backports
>でいいのかなー、と。



###Ubuntuの場合
PPA リポジトリを登録し、apt-get でインストールするだけでOK。

```
$ sudo add-apt-repository ppa:pi-rho/dev
$ sudo apt-get update
$ sudo apt-get install tmux
```

###Debianの場合
iwaim@githubさんのコメント (http://qiita.com/nntsugu@github/items/107cbd6cd6db2aa46172#comment-d7056d556aae79608038) より引用。
>DebianはDebian Backportsが王道ですね。
>
>http://packages.debian.org/ja/wheezy-backports/tmux
>http://qiita.com/wozozo/items/d281a1101544dcc2d37d


# 昔、社内向けに書いた資料
tmux
http://www.slideshare.net/nntsugu/tmux-13463284