Tmux常用快捷鍵以及我會常到的一些問題彙總

2022-02-01 15:04:46 字數 4906 閱讀 5194

今天部署測試伺服器環境

使用到了tmux 剛開始我把tmux想象成了像omzsh這種shell 但是被指出是錯誤的,tmux類似於在shell裡面的軟體。我還真是第一次接觸到這個概念。

首先安裝

brew install tmux

我在安裝的時候並沒有遇到什麼問題。

1. open session

$ tmux new-session -s basic

或者$ tmux new-s basic

-s引數表示session名稱,如果不加-s引數,那麼tmux缺省會新建乙個以數字(下標從0開始)命名的session,並預設開啟乙個window。開啟乙個session後,後續的所有控制tmux本身的快捷鍵都需要加字首,預設是ctrl+b,以下把字首按鍵稱為prefix。

2. detach session 

想要暫時離開tmux,回到終端環境時,可以通過快捷鍵prefix+d(d for detach)。要注意的時,即使是detach的狀態,tmux中在執行的程式還會繼續執行。想要回到tmux session時,只需執行:

$ tmux attach -t basic

-t引數可以指定要attach的session。

3. list session 

終端中執行tmux ls(ls for list session)可以列出當前有多少個session。如果已經在session中,執行prefix+s(s for session)可以列出當前有多少個session,並且可通過上、下鍵選擇要進入的session。

4. kill session 

要真正關閉乙個session,可以在終端下執行命令tmux kill-session -t basic,其中-t引數表示session名稱。

二. window 

如果說session是個不可見的東西,那麼window就是我們輸入、執行命令的地方。乙個session可以包含多個window。把window模擬成iterm2中的標籤應該就理解了。

1. 建立window 

在建立session的時候缺省會建立乙個以"數字下標+bash"命名的window,並且名稱隨著bash中執行的不同命令而變化。在新建session時可以通過-n引數指定預設開啟的window名稱,比如通過tmux new -s basic -n win命名乙個win名稱的window。也可以隨時通過prefix+,來修改window名稱。

2. 切換window 

類似標籤,我們可以通過一些快捷鍵在同乙個session下的多個window之間切換。比如:

prefix+p(p for previous):切換到上乙個window。 

prefix+n(n for next): 切換到下乙個window。 

prefix+0: 切換到0號window,依次類推,1、2、3... 

prefix+w(w for windows): 列出當前session所有window,通過上、下鍵可以選擇切換到指定window。

3. 關閉window 

prefix+&: 關閉當前window。

三. pane 

乙個window可以切割成多個pane,也就是所謂的分屏,算是tmux的核心功能之一。

1. 分屏 

prefix+%: 垂直分屏,用一條垂線把當前視窗分成左右兩屏。 

prefix+": 水平分屏,用一條水平線把當前視窗分成上下兩屏。

2. 切換pane 

預設情況下,被選中(啟用狀態下)的pane會被綠色邊框高亮突顯出來。 

prefix+o: 依次切換當前視窗下的各個pane。 

prefix+up|down|left|right: 根據按箭方向選擇切換到某個pane。 

prefix+space(空格鍵): 對當前視窗下的所有pane重新排列布局,每按一次,換一種樣式。 

prefix+z: 最大化當前pane。再按一次後恢復。

3. 關閉pane 

prefix+x: 關閉當前使用中的pane。

關於tmux的三個核心概念(session、window和pane)及其基本用法已經介紹完畢。接下來的是一些個性化配置和奇技淫巧,包括重新繫結快捷鍵、自定義快捷鍵、ui樣式、滑鼠支援、複製貼上等等,這些可配置的高階功能也是tmux受人推崇的原因。tmux配置檔案推薦放在~/.tmux.conf檔案中,避免某個使用者修改配置影響到其他使用者,修改配置檔案後要經過reload操作才會在已開啟session中生效。

一. 重新繫結快捷鍵 

tmux的很多預設配置不夠友好,需要個人重新定義。

unbind c-b

set-g prefix c-a

bind c-a send-prefix

bind r source-file ~/.tmux.conf \; display "tmux.conf reload!"bind |split-window -h

bind -split-window -v

bind h select-pane -l

bind j select-pane -d

bind k select-pane -u

bind l select-pane -r

set-g base-index 1set-g pane-base-index 1

二. 滑鼠支援

set-window-option -g mode-mouse on

set-g mouse-select-pane on

set-g mouse-resize-pane on

set-g mouse-select-window on

第1行表示啟用滑鼠。雖然tmux推薦用鍵盤完成所有操作,但是對現代開發人員來說,純鍵盤操作的習慣並非那麼容易養成,因此啟用滑鼠配置成為標配。 

第2行表示支援滑鼠選擇pane。 

第3行表示支援滑鼠調整pane大小。 

第4行表示支援滑鼠選擇window。

三. ui樣式調整

setw -g window-status-current-fg white

setw -g window-status-current-bg red

setw -g window-status-current-attr bright

set-g status-justify left

setw -g monitor-activity on

第1-3行表示狀態列中window標籤的高亮樣式,預設是綠底黑字,設定後當前window紅底白字顯示。 

第5行表示狀態列中window列表左對齊排列。 

第7行表示非當前window有內容更新時顯示在狀態列。

四. 複製貼上 

預設情況下,按prefix+[進入複製模式,按回車(enter)退出複製模式。可以通過配置在複製模式中使用vi習慣操作:

setw -g mode-keys vi

在複製模式下,按空格鍵(space)開始複製,按回車(enter)完成複製,並退出模式,按prefix+]貼上。這些快捷鍵也可以通過以下配置進行修改,使操作更加靠近vi。

unbind [bind escapecopy-mode

unbind p

bind p paste-buffer

bind -t vi-copy 'v'begin-selection

bind -t vi-copy 'y'copy-selection

第1-2行表示重新繫結escape鍵,prefix+escape為進入複製模式。 

第3-4行表示重新繫結p鍵,prefix+p為貼上。 

第5行表示重新繫結v鍵,prefix+v為開始複製。 

第6行表示重新繫結y鍵,prefix+y為完成複製。

要檢視當前複製的內容,可以在prefix+:後出現的命令列中輸入show-buffer,輸入list-buffers可以列出所有的複製歷史內容。 

關於複製貼上,更深入的話題是tmux和系統剪貼簿之間的互動,linux可以使用xclip,mac可以使用tmux-macosx-pasteboard,不過我沒有試驗成功,暫時可以通過alt + 滑鼠複製內容到系統剪貼簿。

五. 多屏操作 

預設情況下,乙個window上只有乙個pane被啟用,接收鍵盤互動。但是某些場景下需要在多個pane中執行相同的操作,比如同時修改兩台或更多台遠端機器的nginx配置,這時候可以在分屏後按prefix+:進入命令模式,輸入set synchronize-panes,即可進入批量操作模式,要退出批量操作模式,再次輸入set synchronize-panes即可。

此文**

Tmux常用快捷鍵

ctrl b 左右分屏 ctrl b 上下分屏 ctrl b o 順時針旋轉切換工作分屏 ctrl b ctrl o 順時針旋轉移動工作分屏 ctrl b space 分屏排列切換 ctrl b x 關掉當前分屏終端 ctrl b z 最大化 復原當前分屏 v1.8以後版本 ctrl b c 新建視...

Tmux常用快捷鍵

會話 session 視窗 window 窗格 pane 快捷鍵可以自定義.修改 tmux.conf檔案 tmux new建立預設名稱的會話 tmux new s mysession建立名為mysession的會話 tmux ls顯示會話列表 tmux a連線上乙個會話 tmux a t myses...

tmux 常用快捷鍵

目錄 視窗快捷鍵 建立新視窗 切換新視窗 重新命名視窗 窗格快捷鍵 建立 關閉窗格 切換窗格 窗格位置變換 變換窗格 c b c 建立乙個新視窗,狀態列會顯示多個視窗的資訊。c b p 切換到上乙個視窗 按照狀態列上的順序 c b n 切換到下乙個視窗。c b 切換到指定編號的視窗,其中的是狀態列上...