Tmux 使用 Prefix 以將自身的快捷鍵與其它應用區分,運行 Tmux 快捷鍵時首先按下這個 Prefix (默認是 Ctrl-b
組合鍵),鬆手後緊接着按下對應操做的快捷鍵。編程
好比,若是我想要列出全部的 Tmux 會話(對應快捷鍵是 s
)須要這樣:vim
Ctrl-b
組合鍵(默認 Prefix );Ctrl-b
;s
鍵。Tmux 配置文件的默認地址是 ~/.tmux.conf
,每次啓動 Tmux 時都會加載該文件。緩存
Tmux 的配置未見位置是 ~/.tmux.conf
,修改 Tmux Prefix 首先須要取消綁定原有的的 Prefix ; 再設置新的 Prefix,這裏以 Ctrl-w
爲例:session
unbind C-b set -g prefix C-w
Tmux 快捷鍵綁定的命令是 bind 快捷鍵 做用
,便可將「做用」綁定在 Prefix +快捷鍵
上, 下面這行配置會將「從新加載」配置文件的操做綁定在快捷鍵 R
上:ssh
bind R source-file ~/.tmux.conf \; display-message "Config reloaded..."
若是你用過 Vim 之類的編輯器確定不會對 Pane 概念感到陌生,Tmux 也支持相似的概念, 支持橫向和縱向切割面板功能。編輯器
功能 | 命令 |
---|---|
水平切割(上下兩半) | Prefix + " |
豎直切割(左右) | Prefix + % |
調整面板寬度/高度 | Prefix - 方向鍵 |
窗口的層級要高於面板,做用相似於標籤頁,默認會在終端的底部顯示窗口列表。佈局
功能 | 命令 |
---|---|
建立新窗口 | Prefix + c |
重命名窗口 | Prefix + , |
切換到某個窗口 | Prefix + 窗口 ID |
會話的層級更高於窗口,在終端輸入 tmux
會建立並進入一個新的會話,你可使用會話來區分 使用者或者任務。spa
功能 | 命令 |
---|---|
建立並進入新會話 | tmux |
進入未關閉的會話 | tmux attach 會話名 |
退出但保留當前會話 | Prefix + d |
列出全部會話 | Prefix + s |
重命名當前會話 | Prefix + $ |
你須要添加如下配置:命令行
# (進入複製模式後)輸入 'v' 開始選擇 bind-key -t vi-copy v begin-selection # 將選中文字添加到系統的剪貼板中 bind-key -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy"
tmux 有個特性,無論多少人連進同一個 tmux 會話,他們看到和操做的都是同一個東西,會話的長寬取決於輸出的長款的最小值,所以能夠用來進行結對編程練習。code
首先你須要安裝 Tmate:
brew install tmate
Ubuntu:
sudo apt-get install software-properties-common && \ sudo add-apt-repository ppa:tmate.io/archive && \ sudo apt-get update && \ sudo apt-get install tmate
輸入 tmate
將會建立一個公開的遠程會話(會話的底部會出現提示「[tmate] Remote session: ssh [some hash]@ny.tmate.io」),將 ssh 的地址發送給你的朋友就能夠分享你的會話了!
若是你跟我同樣使用 Vim 做爲編輯器,可能一樣會遇到輸出黑塊的問題。解決方案是在 Vim 的配置文件中加入:
if exists('$TMUX') set term=screen-256color endif
tmux new -s <name-of-my-session> 在會話外建立一個新的會話
tmux ls 在會話外獲取會話列表
tmux a(attach) -t <name-of-my-session> 在會話外進入會話,不帶名字進入第一個會話
tmux kill-session -t <name-of-my-session> 在會話外刪除會話
上面的操做是在普通命令行下操做的,因此不用按前綴鍵。下面的都是在tmux中操做的,因此須要按前綴鍵,默認是ctrl-b;在tmux中,輸入冒號是開啓命令行。
? 列出全部快捷鍵;按q返回
d 脫離當前會話,可暫時返回Shell界面,輸入tmux attach可以從新進入以前會話
s 選擇並切換會話;在同時開啓了多個會話時使用
D 選擇要脫離的會話;在同時開啓了多個會話時使用
: 進入命令行模式;此時可輸入支持的命令,例如kill-server全部tmux會話
[ 複製模式,光標移動到複製內容位置,空格鍵開始,方向鍵選擇複製,回車確認,q/Esc退出
] 進入粘貼模式,粘貼以前複製的內容,按q/Esc退出
~ 列出提示信息緩存;其中包含了以前tmux返回的各類提示信息
t 顯示當前的時間
:new -s <name-of-my-new-session> 進入會話後建立新的會話
s 列出會話,進行選擇
:kill-session 刪除當前會話
:kill-server 刪除全部會話
c 建立新窗口
& 關閉當前窗口
數字鍵 切換到指定窗口
p 切換至上一窗口
n 切換至下一窗口
l 先後窗口間互相切換
w 經過窗口列表切換窗口
, 重命名當前窗口,便於識別
. 修改當前窗口編號,至關於從新排序
f 在全部窗口中查找關鍵詞,便於窗口多了切換
「 將當前面板上下分屏% 將當前面板左右分屏x 關閉當前分屏z tmux 1.8新特性,最大化當前所在面板,重複一遍返回! 將當前面板置於新窗口,即新建一個窗口,其中僅包含當前面板Ctrl+方向鍵 以1個單元格爲單位移動邊緣以調整當前面板大小Alt+方向鍵 以5個單元格爲單位移動邊緣以調整當前面板大小空格鍵 能夠在默認面板佈局中切換,試試就知道了q 顯示面板編號o 選擇當前窗口中下一個面板方向鍵 移動光標選擇對應面板{ 向前置換當前面板} 向後置換當前面板Alt+o 逆時針旋轉當前窗口的面板Ctrl+o 順時針旋轉當前窗口的面板