一、Tmux安裝
sudo apt-get install tmux
二、Tmux環境變量配置
完成安裝以後,可以進行環境變量的配置。
打開 ~/.tmux.conf ,添加如下代碼: (以下是某博主使用 Tmux 幾年來逐漸精簡後的配置,本文拿來做參考,讀者可根據自己需要修改!)
# -----------------------------------------------------------------------------
# Tmux 基本配置 - 要求 Tmux >= 2.3
# 如果不想使用插件,只需要將此節的內容寫入 ~/.tmux.conf 即可
# -----------------------------------------------------------------------------
# C-b 和 VIM 衝突,修改 Prefix 組合鍵爲 Control-Z,按鍵距離近,也可以改爲Control-A
set -g prefix C-a
set -g base-index 1 # 窗口編號從 1 開始計數
set -g display-panes-time 10000 # PREFIX-Q 顯示編號的駐留時長,單位 ms
set -g mouse on # 開啓鼠標,Tmux2.1以後的版本只需這一步操作完成mouse配置
set -g pane-base-index 1 # 窗格編號從 1 開始計數
set -g renumber-windows on # 關掉某個窗口後,編號重排
setw -g allow-rename off # 禁止活動進程修改窗口名
setw -g automatic-rename off # 禁止自動命名新窗口
setw -g mode-keys vi # 進入複製模式的時候使用 vi 鍵位(默認是 EMACS)
# -----------------------------------------------------------------------------
# 使用插件 - via tpm
# 1. 執行 git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
# 2. 執行 bash ~/.tmux/plugins/tpm/bin/install_plugins
# -----------------------------------------------------------------------------
setenv -g TMUX_PLUGIN_MANAGER_PATH '~/.tmux/plugins'
# 推薦的插件(請去每個插件的倉庫下讀一讀使用教程)
set -g @plugin 'seebi/tmux-colors-solarized'
set -g @plugin 'tmux-plugins/tmux-pain-control'
set -g @plugin 'tmux-plugins/tmux-prefix-highlight'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-yank'
set -g @plugin 'tmux-plugins/tpm'
# tmux-resurrect
set -g @resurrect-dir '~/.tmux/resurrect'
# tmux-prefix-highlight
set -g status-right '#{prefix_highlight} #H | %a %Y-%m-%d %H:%M'
set -g @prefix_highlight_show_copy_mode 'on'
set -g @prefix_highlight_copy_mode_attr 'fg=white,bg=blue'
# 初始化 TPM 插件管理器 (放在配置文件的最後)
run '~/.tmux/plugins/tpm/tpm'
# -----------------------------------------------------------------------------
# 結束
# -----------------------------------------------------------------------------
配置完執行如下命令,配置即可生效!
Tmux source ~/.Tmux.conf
三、Tmux常用快捷鍵
以下內容適用於 Tmux 2.3 及以上的版本,但是絕大部分的特性低版本也都適用,鼠標支持、VI 模式、插件管理在低版本可能會與本文不兼容。
常用操作1:以下操作在終端直接執行(非Tmux環境)
啓動新會話:
tmux [new -s 會話名 -n 窗口名]
恢復會話:
tmux at [-t 會話名]
列出所有會話:
tmux ls
tmux a -t 會話編號
關閉會話:
tmux kill-session -t 會話名
tmux ls | grep : | cut -d. -f1 | awk '{print substr($1, 0, length($1)-1)}' | xargs kill
常用操作2:以下8種操作均在 Tmux 環境中執行,需要先按下操作前綴 ctrl+b(按照二中配置,已替換爲ctrl+a)
,再進行如下操作:
1. 會話操作
:new<回車> 啓動新會話
s 列出所有會話
$ 重命名當前會話
2. 窗口 (window)操作 (注意:每一個會話下可包含多個窗口)
c 創建新窗口
w 列出所有窗口
n 後一個窗口
p 前一個窗口
f 查找窗口
, 重命名當前窗口
& 關閉當前窗口
3. 調整窗口排序
swap-window -s 3 -t 1 交換 3 號和 1 號窗口
swap-window -t 1 交換當前和 1 號窗口
move-window -t 1 移動當前窗口到 1 號
4. 窗格(分割窗口) 常用!!!
% 垂直分割
" 水平分割
o 交換窗格
x 關閉窗格
⍽ 左邊這個符號代表空格鍵 - 切換佈局
q 顯示每個窗格是第幾個,當數字出現的時候按數字幾就選中第幾個窗格
{ 與上一個窗格交換位置
} 與下一個窗格交換位置
z 切換窗格最大化/最小化
5. 同步窗格
這麼做可以切換到想要的窗口,輸入 Tmux 前綴和一個冒號呼出命令提示行,然後輸入:
:setw synchronize-panes
你可以指定開或關,否則重複執行命令會在兩者間切換。 這個選項值針對某個窗口有效,不會影響別的會話和窗口。 完事兒之後再次執行命令來關閉。幫助
6. 調整窗格尺寸
如果你不喜歡默認佈局,可以重調窗格的尺寸。雖然這很容易實現,但一般不需要這麼幹。這幾個命令用來調整窗格:
PREFIX : resize-pane -D 當前窗格向下擴大 1 格
PREFIX : resize-pane -U 當前窗格向上擴大 1 格
PREFIX : resize-pane -L 當前窗格向左擴大 1 格
PREFIX : resize-pane -R 當前窗格向右擴大 1 格
PREFIX : resize-pane -D 20 當前窗格向下擴大 20 格
PREFIX : resize-pane -t 2 -L 20 編號爲 2 的窗格向左擴大 20 格
7. 文本複製模式:
按下 PREFIX-[
進入文本複製模式。可以使用方向鍵在屏幕中移動光標。默認情況下,方向鍵是啓用的。在配置文件中啓用 Vim 鍵盤佈局來切換窗口、調整窗格大小。Tmux 也支持 Vi 模式。要是想啓用 Vi 模式,只需要把下面這一行添加到 .tmux.conf 中:
setw -g mode-keys vi
啓用這條配置後,就可以使用 h、j、k、l 來移動光標了。
想要退出文本複製模式的話,按下回車鍵就可以了。然後按下 PREFIX-]
粘貼剛纔複製的文本。
一次移動一格效率低下,在 Vi 模式啓用的情況下,可以輔助一些別的快捷鍵高效工作。
例如,可以使用 w 鍵逐詞移動,使用 b 鍵逐詞回退。使用 f 鍵加上任意字符跳轉到當前行第一次出現該字符的位置,使用 F 鍵達到相反的效果。
vi emacs 功能
^ M-m 反縮進
Escape C-g 清除選定內容
Enter M-w 複製選定內容
j Down 光標下移
h Left 光標左移
l Right 光標右移
L 光標移到尾行
M M-r 光標移到中間行
H M-R 光標移到首行
k Up 光標上移
d C-u 刪除整行
D C-k 刪除到行末
$ C-e 移到行尾
: g 前往指定行
C-d M-Down 向下滾動半屏
C-u M-Up 向上滾動半屏
C-f Page down 下一頁
w M-f 下一個詞
p C-y 粘貼
C-b Page up 上一頁
b M-b 上一個詞
q Escape 退出
C-Down or J C-Down 向下翻
C-Up or K C-Up 向下翻
n n 繼續搜索
? C-r 向前搜索
/ C-s 向後搜索
0 C-a 移到行首
Space C-Space 開始選中
C-t 字符調序
8. 雜項:
d 退出 tmux(tmux 仍在後臺運行)
t 窗口中央顯示一個數字時鐘
? 列出所有快捷鍵
: 命令提示符
附:配置選項:
# 鼠標支持 - 設置爲 on 來啓用鼠標(與 2.1 之前的版本有區別,請自行查閱 man page)
* set -g mouse on
# 設置默認終端模式爲 256color
set -g default-terminal "screen-256color"
# 啓用活動警告
setw -g monitor-activity on
set -g visual-activity on
# 居中窗口列表
set -g status-justify centre
# 最大化/恢復窗格
unbind Up bind Up new-window -d -n tmp \; swap-pane -s tmp.1 \; select-window -t tmp
unbind Down
bind Down last-window \; swap-pane -s tmp.1 \; kill-window -t tmp
References: