Ubuntu で tmux を使いたい！

お久しぶりです、まちゃです！
僕のフレンズにtmuxを薦められたので使っていきたいと思います！

# tmux って何ができるの？
* tmux は端末多重化ソフトウェアと言って、1つのターミナルでいくつもターミナルを起動できて、平行作業ができる！
* パッケージとして install することができて、サーバー側に入っていれば SSH を通じてクライアント側からも tmux を使える！<br>
使い方の例として、vim などの editer でファイルを開き、画面分割(ペイン)してあげると、vim を終了せずにそのファイルに対してコンパイルや実行をすることができたり、作業内容によって別のターミナルを開く(セッションを作成)したりと他にも便利に使うことができる！
* セッション記憶ができるのでフリーズしたときなどにその前の状態からやり直すことができる！

**そして、tmux の見どころとして、`.tmux.conf`という設定ファイルを作成して共有してあげるだけで、どのPCでもその設定通りに動いてくれる！！**

ここまで読んで、お、すげーってなった人はそのまま install しちゃいましょう！！

# tmux の install
tmux を install するのには色々やり方がありますが、自分が調べて出てきたやり方を載せときます！

## apt での install (version 古い)

```shell
sudo apt install tmux -y
```

## git での install
とりあえずこれらを入れてください
`git automake bison build-essential pkg-config libevent-dev libncurses5-dev`
そしたら git から落としてきましょう！

```shell
sudo git clone https://github.com/tmux/tmux /usr/local/src
```
落としてきたらビルドします

```shell
cd /usr/local/src/tmux
sudo ./autogen.sh
sudo ./configure --prefix=/usr/local
sudo make
```
`sudo`が使えない方は`~/`の下に clone してきて `./configure --prefix=/usr/local`を`./configure --prefix=~/`としてあげればいけます！

終わったら install!

```shell
sudo make install
tmux -v
```
最後のはバージョン確認のコマンド、これで表示されてなかったら install できてないのでエラー文を読んで解決しよう！

# tmuxの使い方
install が終わったのでいじっていきましょう！

## 基本操作
### コマンドライン
コマンドラインでの操作を列挙してきます！

```
# 新規セッション開始
tmux

# 名前をつけて新規セッション開始
tmux new -s <セッション名>

# セッションの一覧表示
tmux ls

# 接続クライアントの一覧表示
tmux lsc

# セッションを再開 ※-t <対象セッション名>でセッション名の指定も可能
tmux a

# セッションを終了 ※-t <対象セッション名>でセッション名の指定も可能
tmux kill-session

# tmux全体を終了
tmux kill-server

# その他コマンドを実行
tmux [command [flags]]
```

## キー操作
**tmux にはショートカットが色々設定されてて、全ての操作の頭に`プレフィックスキー`と呼ばれるのが`^b`に当てられています。**(設定ファイルにて変更可能)
このプレフィックスキーを押してからキー操作をしないと文字を打つだけになるので注意。

では、コマンドラインと同じように列挙していきます！

### 基本

```
?      キーバインド一覧
:      コマンドプロンプト
        show-options -g や show-window-options -g 入力で設定一覧を表示
        -gはグローバル指定(デフォルト)の意、個別に設定された値は-g無しで確認する
```

### セッション操作

```
s      セッションの一覧選択
d      セッションから離脱(デタッチ)
$      セッションの名前変更
ctrl+Z tmuxを一時中断 ※fgで復帰
```

### ウィンドウ操作

```
c      新規ウインドウ作成
w      ウインドウの一覧選択
0-9    指定番号のウインドウへ移動
&      ウインドウの破棄
n      次のウインドウへ移動
p      前のウインドウへ移動
l      以前のウインドウへ移動
'      入力番号のウインドウへ移動
.      入力番号にウインドウ番号を変更
,      ウインドウの名前変更
f      ウインドウの検索
```

### ペイン操作

```
%            左右にペイン分割
"            上下にペイン分割
q            ペイン番号を表示
カーソル      指定方向のペインへ移動 ※連続押しでプレフィックス継続
Ctrl-カーソル ペインのサイズを変更 ※連続押しでプレフィックス継続
!            ペインを解除してウインドウ化
x            ペインの破棄
o            ペインを順に移動
;            以前のペインへ移動
z            現在のペインを最大化/復帰
スペース      レイアウトを変更
Alt-1-5      レイウトを変更
{            ペインの入れ替え(前方向)
}            ペインの入れ替え(後方向)
ctrl+o       ペインの入れ替え(全体)
t            ペインに時計を表示
```


### コピーモード

```
[       コピーモードの開始（カーソルキーで自由に移動）
スペース コピー開始位置決定（viモード）
エンター コピー終了位置決定（viモード）
]       コピーした内容を貼り付け

※viモードで無い場合は、設定ファイルに set-window-option -g mode-keys vi を追加
```

# 最後に
最後まで読んでくださりありがとうございます！
tmux は最近入れたばっかりでまだ全然使いこなせてないですがとても気に入ってますw
今回は基本的なことだったので次は、見どころとして書いた`.tmux.conf`について書きたいと思います！
では、またねー！

参考資料
---
[tmuxチートシート](https://qiita.com/nmrmsys/items/03f97f5eabec18a3a18b)
[tmuxを使いこなそう（ウインドウ、ペイン、セッション、アタッチ、デタッチ）](https://qiita.com/shoma2da/items/2e68c1e59938eb0c2f83#%E8%A4%87%E6%95%B0%E3%81%AE%E7%94%BB%E9%9D%A2%E3%82%84%E9%A0%98%E5%9F%9F%E3%82%92%E4%BD%BF%E3%81%84%E3%81%93%E3%81%AA%E3%81%99)
[UbuntuやCentOSに最新のtmuxを導入する](https://qiita.com/ha4gu/items/aebe9207904f52ee4fb6)