Tmux 簡單配置使用


Tmux Prefix (prefix)

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

比如,如果我想要列出所有的 Tmux 會話(對應快捷鍵是 s)需要這樣:

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

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

修改 Prefix( Prefix )

Tmux 的配置未見位置是 ~/.tmux.conf,修改 Tmux Prefix 首先需要取消綁定原有的的 Prefix ; 再設置新的 Prefix,這里以 Ctrl-w 為例:

unbind C-b
set -g prefix C-w

綁定快捷鍵

Tmux 快捷鍵綁定的命令是 bind 快捷鍵 作用,即可將“作用”綁定在 Prefix +快捷鍵 上, 下面這行配置會將“重新加載”配置文件的操作綁定在快捷鍵 R 上:

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 會創建並進入一個新的會話,你可以使用會話來區分 使用者或者任務。

功能 命令
創建並進入新會話 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 會話,他們看到和操作的都是同一個東西,會話的長寬取決於輸出的長款的最小值,因此可以用來進行結對編程練習。

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 順時針旋轉當前窗口的面板


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM