配置 tmux
說明
當啟動 tmux 伺服器,tmux 在使用者的家目錄中運行一個名為 .tmux.conf 的文件。 該文件包含按順序執行的 tmux 命令列表 請務必注意 .tmux.conf 僅在啟動伺服器時運行 而不在創建新會話時運行
可以使用 source-file 命令從 .tmux.conf 或正在運行的 tmux 伺服器 運行不同的配置文件,例如使用命令提示符從正在運行的 伺服器再次運行 .tmux.conf
配置文件中的命令每行顯示一個 以#開頭的任何行都是註釋,將被忽略
使用滑鼠
:set -g mouse on
打開滑鼠命令提示
它可用於更改活動中窗格或窗口,調整窗格大小
複製內容或從菜單中選擇項目
滑鼠操作說明
在窗格按左鍵切換活動中的窗格
在狀態欄的窗口名稱按左鍵切換窗口
按左鍵拖曳窗格邊距調整大小
在窗格內拖曳左鍵選取文字 放開滑鼠時複製選取的文字
在窗格按右鍵打開一個包含各種指令的選單 當釋放滑鼠後,選取的命令會在目標光格中運行 每一個選單項目也有一個快捷鍵顯示在括號中
在狀態欄的窗口或會話的名稱按右鍵打開一個 類似的選單給窗口或會話使用
快捷鍵綁定
使用 bind-key
和 unbind-key
命令可以更改 tmux 快捷鍵綁定
tmux 中的每個快捷鍵綁定都屬於一個命名的快捷鍵表
有四個預設的快捷表:
root(根) 表包含不帶前綴鍵的快捷鍵綁定
prefix(前綴) 表包含在前綴鍵按下之後的快捷鍵綁定 就像進入到 tmux 的快捷鍵提到的那樣
copy-mode(複製模式) 表包含使用 emacs(1)-style 的按鍵 在復制模式下使用快捷鍵綁定。
copy-mode-vi 表包含使用 vi(1)-style 的按鍵 在復制模式下使用快捷鍵綁定。
可以使用 list-keys
命令列出所有的快捷鍵綁定或
單個表的快捷鍵綁定。預設情況下,這會將按快捷鍵顯示為
一系列的 bind-key 命令。
-T 標誌 要顯示的快捷鍵表
-N 標誌 顯示快捷鍵幫助,像是 C-b?
快捷鍵綁定
作者在輸入 -N 時,已經變成非法的選項了
例如,僅列出 prefix 表中的快捷鍵
或者
綁定 C-b M-0
快捷鍵為選擇窗口 10
取消綁定快捷鍵 C-b M-0
更進一步綁定的部分在手冊頁的命令部分
複製模式快捷鍵
複製模式快捷鍵綁定在 copy-mode 和 copy-mode-vi 按鍵表中設定 複製模式具有一組單獨的命令,這些命令使用 -X 標誌 傳遞給 send-keys 命令,例如,複製模式 start-of-line 命令 將游標移動到行的開頭,並綁定 C-a 到 copy-mode 按鍵表:
手冊頁中提供了複製模式命令的完整列表,這裡是選取:
命令 | emacs(1) | vi(1) | 描述 |
begin-selection | C-Space | Space | 開始選取 |
cancel | q | q | 離開複製模式 |
clear-selection | C-g | Escape | 清除選取 |
copy-pipe | 複製並管道到第一個參數中的命令 | ||
copy-selection-and-cancel | M-w | Enter | 複製選取並離開複製模式 |
cursor-down | Down | j | 向下移動游標 |
cursor-left | Left | h | 向左移動游標 |
cursor-right | Right | l | 向右移動游標 |
cursor-up | Up | k | 向上移動游標 |
end-of-line | C-e | $ | 移動游標到行尾 |
history-bottom | M-> | G | 移至歷史底部 |
history-top | M-< | g | 移至歷史頂部 |
middle-line | M-r | M | 移至中間行 |
next-word-end | M-f | e | 移至下一個單字的節尾 |
page-down | PageDown | C-f | 向下翻頁 |
page-up | PageUp | C-b | 向上翻頁 |
previous-word | M-b | b | 移至上一個單字 |
rectangle-toggle | R | v | 切換矩形選取 |
search-again | n | n | 重複上一次搜尋 |
search-backward | ? | 向後搜尋,第一個參數是搜尋項目 | |
search-backward-incremental | C-r | 向後漸進搜尋,通常與 -i 標誌一起使用命令提示 | |
search-forward | / | 向前搜尋,第一個參數是搜尋項目 | |
search-forward-incremental | C-s | 向前漸進搜尋 | |
search-reverse | N | N | 重複上一次搜尋,但方向相反 |
start-of-line | C-a | 0 | 移至行首 |
選項類型
顯示選項
$ tmux show -s
-s 顯示伺服器選項
$ tmux show -g
-g 沒有其他的旗標為顯式全域會話選項
$ tmux show -wg
-w 和 -g 一起為顯示全域窗口選項
$ tmux show -g status
指定顯示 status 選項
改變選項
set -g status off
設定狀態欄選項關閉
set -s default-terminal 'tmux-256color'
設定預設終端選項
set -gu status
-u 變成未設置選項,未設置選項會恢復成預設值
顏色和風格
set -g status-style 'bg=blue'
設定狀態欄背景的顏色為藍色
剩下的風格項目寫在手冊裡
有用選項列表
除了樣式選項,這是最常用的 tmux 選項的簡短列表:
選項 | 類型 | 描述 |
base-index | 會話 | 如果設定,則窗口索引從 base-index 開始而不是從0 |
buffer-limit | 伺服器 | 保留的最大自動緩衝區數,預設值為50 |
default-terminal | 伺服器 | tmux 中 TERM 環境變數的預設值 |
display-panes-time | 窗口 |
|
display-time | 會話 | 狀態欄上顯示訊息的時間(以毫秒為單位) |
escape-time | 伺服器 | tmux 收到 Escape 鍵後等待的時間 以查看它是否是較長鍵序列的一部分 |
focus-events | 伺服器 | tmux 是否發送焦點鍵序列,當活動窗格更改時 以及是否從外部終端接收(如果支持) |
history-limit | 會話 | 每個窗格的歷史記錄中保留的最大行數 |
mode-keys | 窗口 | 在復制模式下使用 emacs(1)還是 vi(1) 鍵綁定 |
mouse | 會話 | 如果啟用了游標 |
pane-border-status | 窗口 | 狀態欄是否出現在每個窗格邊框中:頂部或底部 |
prefix | 會話 | 前綴鍵,預設為 |
remain-on-exit | 窗口 | 程序在運行離開時是否自動殺死窗格 |
renumber-windows | 會話 | 如果 on(開),則窗口將自動重新編號 以填補窗口列表中的所有間隙 |
set-clipboard | 會話 | 當複製文本和外部終端支持時 tmux 是否應嘗試設定外部 X(7) 剪貼板 |
set-titles | 會話 | 如果 on,tmux 將設定外部終端的標題 |
status | 會話 | 狀態行是否可見 |
status-keys | 會話 | 在命令提示字元下是否使用 emacs(1) 或 vi(1) 鍵綁定 |
status-interval | 會話 | 重畫狀態行之前的最長時間(以秒為單位) |
status-position | 會話 | 狀態行的位置:頂部或底部 |
synchronize-panes | 窗口 | 如果 on,則將在窗口中的任何窗格中鍵入的內容 發送到窗口中的所有窗格 - 請謹慎使用此選項! |
terminal-overrides | 會話 | tmux 的任何功能都應從為外部終端指定的 TERM 中覆蓋 |
樣式和格式選項列表
這是最常用的 tmux 樣式和格式選項列表:
選項 | 類型 | 描述 |
display-panes-active-colour | 會話 |
|
display-panes-colour | 會話 |
|
message-style | 會話 | 狀態行和命令提示字元上顯示的訊息樣式 |
mode-style | 窗口 | 在複製模式選取的樣式 |
pane-active-border-style | 窗口 | 活動窗格邊框的樣式 |
pane-border-format | 窗口 | 如果設定了 panel-border-status 則文本格式顯示在窗格邊框狀態行中的 |
pane-border-style | 窗口 | 除了活動窗格的窗格邊框的樣式 |
status-left-length | 會話 | 狀態行左側的最大長度 |
status-left-style | 會話 | 狀態行左側的樣式 |
status-left | 會話 | 狀態行左側的文本格式 |
status-right-length | 會話 | 狀態行右側的最大長度 |
status-right-style | 會話 | 狀態行右側的樣式 |
status-right | 會話 | 狀態行右側的文本格式 |
status-style | 會話 | 狀態行整體的樣式,部分可能會被更具體的選項覆蓋,像是 status-left-style |
window-active-style | 窗口 | 窗口活動窗格中預設顏色的樣式 |
window-status-current-format | 窗口 | 窗口列表中當前窗口的格式 |
window-status-current-style | 窗口 | 窗口列表中當前窗口的樣式 |
window-status-format | 窗口 | 除當前窗口外,窗口列表中窗口的格式 |
window-status-separator | 窗口 | 窗口列表中窗口之間的分隔字元 |
window-status-style | 窗口 | 除當前窗口外,窗口列表中窗口的樣式 |
window-style | 窗口 | 除了活動窗格以外,窗口中窗格的預設顏色樣式 |
常見配置更改
.tmux.conf 常見的配置更改
更改前綴鍵
將 C-b 前綴鍵改成 C-a
自定義狀態行
set -g status off
關閉狀態行
set -g status-position top
將狀態行移到頂部
set -g status-style bg=red
將背景色設定為紅色
set -g status-right '%H:%M'
將右側的文本更改為僅有時間
set -g window-status-current-style 'underscore'
在當前窗口下劃線
配置窗格邊框
可以設定窗格的邊框顏色
可以為每個窗格分配一個帶有 panel-border-status
選項的狀態行,例如以粗體顯示窗格標題
vi(1)鍵綁定
mode-keys 複製模式使用 vi 鍵
status-keys 命令提示使用 vi 鍵
滑鼠複製行為
unbind -Tcopy-mode MouseDragEnd1Pane
釋放滑鼠時,不複製或清除選擇內容或退出複制模式。
必須使用鍵盤來複製選取
bind -Tcopy-mode MouseDragEnd1Pane send -X copy-selection
複製並清除選取,但不退出複制模式
bind -Tcopy-mode MouseDragEnd1Pane send -X copy-selection-no-clear
複製但不清除選取
Last updated