Tmux 簡單配置使用

Tmux Prefix (prefix)

Tmux 使用 Prefix 以將自身的快捷鍵與其它應用區分,運行 Tmux 快捷鍵時首先按下這個 Prefix (默認是 Ctrl-b 組合鍵),鬆手後緊接着按下對應操做的快捷鍵。編程

好比,若是我想要列出全部的 Tmux 會話(對應快捷鍵是 s)須要這樣:vim

  1. 按下 Ctrl-b 組合鍵(默認 Prefix );
  2. 放開 Ctrl-b
  3. 按下 s 鍵。

Tmux 配置文件的默認地址是 ~/.tmux.conf,每次啓動 Tmux 時都會加載該文件。緩存

修改 Prefix( Prefix )

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..."

Tmux 特性

Pane(面板)

若是你用過 Vim 之類的編輯器確定不會對 Pane 概念感到陌生,Tmux 也支持相似的概念, 支持橫向和縱向切割面板功能。編輯器

功能 命令
水平切割(上下兩半) Prefix + "
豎直切割(左右) Prefix + %
調整面板寬度/高度 Prefix - 方向鍵

窗口(window)

窗口的層級要高於面板,做用相似於標籤頁,默認會在終端的底部顯示窗口列表。佈局

功能 命令
建立新窗口 Prefix + c
重命名窗口 Prefix + ,
切換到某個窗口 Prefix + 窗口 ID

會話(session)

會話的層級更高於窗口,在終端輸入 tmux 會建立並進入一個新的會話,你可使用會話來區分 使用者或者任務。spa

功能 命令
建立並進入新會話 tmux
進入未關閉的會話 tmux attach 會話名
退出但保留當前會話 Prefix + d
列出全部會話 Prefix + s
重命名當前會話 Prefix + $

類 Vim 的文字選擇和複製方式

選中和複製文字

你須要添加如下配置:命令行

# (進入複製模式後)輸入 '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 與遠程會話共享

首先你須要安裝 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 做爲編輯器,可能一樣會遇到輸出黑塊的問題。解決方案是在 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 順時針旋轉當前窗口的面板

相關文章
相關標籤/搜索