# 進入到 tmux 的快捷鍵

## 說明

C-b 代表 Ctrl-b

C- Ctrl\
M- Meta 通常是 Alt， mac 為 option\
S- shift

如果組合在一起 C-M-x 代表 Ctrl-Alt-x

#### 在 mac os 使用 Meta 需要在終端打開 option

![](https://954117844-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm4AcuCLYNcCwbaqXHr%2F-M5vKxUGAx4c7zyMfb8q%2F-M5vL_kRS7BBRNoUBcXD%2F%E6%88%AA%E5%9C%96%202020-04-27%20%E4%B8%8B%E5%8D%887.15.48.png?alt=media\&token=e4399fad-62b8-49be-93c0-e8c5212fa32c)

## 一般快捷鍵

`C-b ?`\
列出按鍵綁定

`C-b :`\
切換命令提示，狀態欄會變成冒號 :

`C-b %`\
新增窗格，水平分割，左右各一個

`C-b "`\
新增窗格，垂直分割，上下各一個

`C-b c`\
新建窗口\
窗口索引按照 0 1 2 依序指定\
中間有空缺會優先填滿

`C-b d`\
分離會話，類似斷線\
會提示 \[detached (from session sessionName)]

## 改變當前會話

`C-b )`\
向後移動會話

`C-b (`\
向前移動會話

## 改變當前窗口

`C-b number`\
改變窗口為 number，number 為 0 \~ 9

`C-b '`\
狀態欄出現提示 index 後面輸入窗口索引，並切換到此窗口

`C-b n`\
切換到下一個數字索引窗口，如果存在的話

`C-b p`\
切換到上一個數字索引窗口，如果存在的話

`C-b l`\
切換到前一個當前窗口

## **改變活動窗格**

`C-b Up`, `C-b Down`, `C-b Left` 和 `C-b Right`\
使用上下左右的方式改變

`C-b q`\
使用此指令會跳出窗格號碼，\
在號碼還沒消失前輸入對應的號碼\
就能改變活動窗格為此號碼

`C-b o`\
移動到下一號的窗格

`C-b C-o`\
移動下一號的窗格到目前窗格的位置

## 樹模式，選擇會話、窗口、窗格

`C-b s`\
進入樹模式，顯示會話，並且可以選擇要連接的會話

`C-b w`\
進入樹模式，顯示會話，並展開窗口、窗格\
並且可以選擇要連接的會話

### 樹模式操作方式

上下選擇項目，右展開項目，左收合項目\
一開始項目為會話，接下來展開為窗口，再來為窗格

前十個項目可以按 0 \~ 9 直接選擇(會用括號顯示在畫面上)\
之後使用 `M-a` to `M-z` 做選擇

按 q 離開\
按 t 標記\
按 T 取消所有標記\
標記後可以一起做同樣的事情\
例如按 X 殺死標記的項目，或者下指令 `:kill-server` 之類的

### 在樹模式下的快捷鍵，不需要按前綴鍵

| 快捷鍵   | 功能                        |
| ----- | ------------------------- |
| Enter | 改變連接的會話，當前窗口或運作窗格         |
| Up    | 選擇上一個項目                   |
| Down  | 選擇下一個項目                   |
| Right | 展開項目                      |
| Left  | 收合項目                      |
| x     | 殺死項目                      |
| X     | 殺死標記項目                    |
| <     | Scroll preview left(不清楚)  |
| >     | Scroll preview right(不清楚) |
| C-s   | 由名稱搜尋                     |
| n     | 重複上次的搜尋                   |
| t     | 切換標記                      |
| T     | 取消所有標記                    |
| C-t   | 標記所有項目                    |
| :     | 在選擇的項目或每個標記的項目執行命令提示指令    |
| 0     | 改變排序領域(不清楚)               |
| r     | 反向排序(不清楚)                 |
| v     | 切換打開或關閉預覽                 |
| q     | 離開樹模式                     |

## 分離其他客戶端，客戶端模式

`C-b D`\
進入客戶端模式，類似樹模式\
有一些快捷鍵功能一樣，有一些不同\
例如 `Enter` 是分離客戶端

### 在客戶端樹模式下的快捷鍵，類似樹模式下的快捷鍵

| 快捷鍵   | 功能                          |
| ----- | --------------------------- |
| Enter | 分離選擇的客戶端                    |
| d     | 分離選擇的客戶端，和 Enter 相同         |
| D     | 分離標記的客戶端                    |
| x     | 分離選則的客戶端，並嘗試殺死從其啟動的 shell   |
| X     | 分離標記的客戶端，並嘗試殺死從其啟動的 shell說明 |

## **殺死會話，窗口或窗格**

`C-b &`\
提示確認殺死當前窗口，在此窗口中的所有窗格會一併刪除

`C-b x`\
提示確認殺死活動中的窗格

## 重新命名會話和窗口

`C-b $`\
提示為連接的會話輸入新名稱

`C-b ,`\
提示為當前的窗口輸入新名稱

## 交換和移動

`C-b m`\
標記用於交換窗格或窗口\
標記的窗格背景邊框為綠色\
狀態欄標記窗格的窗口有 M 旗標

`C-b M`\
取消標記窗格

可使用[命令提示指令](https://kanneg881.gitbook.io/workspace/zhong-duan/ming-ling-ti-shi-zhi-ling#jiao-huan-he-yi-dong)做交換

`C-b {`\
交換標記，使標記往上

`C-b }`\
交換標記，使標記往下

`C-b .`\
移動標記窗口\
狀態欄會提示輸入索引\
如果輸入已經存在的索引會報錯

## 調整和縮放窗格

These use the `resize-pane` command.

`C-b C-Left`\
`C-b C-Right`\
`C-b C-Up`\
`C-b C-Down`\
小步調整窗格大小\
Left Right Up Down 為方向鍵\
mac os 本身有其對應的快捷鍵，會造成衝突

`C-b M-Left`\
`C-b M-Right`\
`C-b M-Up`\
`C-b M-Down`\
大步調整窗格大小\
Left Right Up Down 為方向鍵

### **窗口佈局**

`C-b space`\
可以循環切換以下的窗口佈局

| **名稱** | 快捷鍵       | 描述                 |
| ------ | --------- | ------------------ |
| 水平平均   | `C-b M-1` | 水平均勻分佈             |
| 垂直平均   | `C-b M-2` | 上下均勻分佈             |
| 主水平    | `C-b M-3` | 頂部有一個大窗格，其餘的水平均勻分佈 |
| 主垂直    | `C-b M-4` | 左側有一個大窗格，其餘的上下均勻分佈 |
| 平鋪     | `C-b M-5` | 平鋪與列數相同的行數         |

## 複製和貼上

tmux 有自己的複製和貼上系統，複製的內容會在貼上緩衝區\
貼上緩衝區可以命名其名稱，預設命名為 buffer0 buffer1 以此類推\
最多保留50個，超過則刪除最舊的\
如果是自己命名的則不會自動刪除

`C-b [`\
進入到複製模式\
進入到複製模式只能是唯讀，並且會凍結任何窗格的輸出

### 複製模式快捷鍵

在 mac os  的快捷鍵中 `C-Space` 已經是開啟 Spotlight\
如果沒有使可以把此快捷鍵關閉，否則會無法選取複製

![](https://954117844-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm4AcuCLYNcCwbaqXHr%2F-M60lpryD-T69JsNV2RU%2F-M60mUASgx1TYjYdr4Rn%2F%E6%88%AA%E5%9C%96%202020-04-29%20%E4%B8%8A%E5%8D%881.15.06.png?alt=media\&token=9e3d693c-0a5b-45c0-8a34-11f975b015fa)

| 快捷鍵       | 動作             |
| --------- | -------------- |
| 上、下、左、右   | 移動游標           |
| `C-Space` | 開始選取           |
| `C-w`     | 複製選取的部分並離開複製模式 |
| `q`       | 離開複製模式         |
| `C-g`     | 暫停選取而不複製，或暫停搜尋 |
| `C-a`     | 移動游標到此行的起始位置   |
| `C-e`     | 移動游標到此行的尾端     |
| `C-r`     | 逆向互動搜尋         |
| `M-f`     | 移動游標到下一個單字     |
| `M-b`     | 移動游標到上一個單字     |

[手冊頁](https://man.openbsd.org/tmux#WINDOWS_AND_PANES)中提供了 vi(1) 和 emacs(1) 的完整快捷鍵列表。

`C-b ]`\
貼上複製的內容

### 緩衝模式

緩衝模式類似客戶端模式和樹模式，可以預覽緩衝的內容\
導覽樹模式和客戶端模式標記鍵

`C-b =`\
進入到緩衝模式

### 緩衝模式快捷鍵

| 快捷鍵     | 功能                |
| ------- | ----------------- |
| `Enter` | 貼上選取的緩衝           |
| `p`     | 貼上選取的緩衝，同 `Enter` |
| `P`     | 貼上標記的緩衝           |
| `d`     | 刪除選取的緩衝           |
| `D`     | 刪除標記的緩            |

## 尋找窗口和窗格

`C-b f`\
提示輸入內容，進入樹模式，並且過濾只顯示內容出現的窗格\
或窗口名稱\
filter: active 出現在預覽代表找到\
filter: no matches 出現在預覽代表沒有找到
