在mac中安裝tmux

在mac 中安裝Tmux:

在終端輸入以下命令:javascript

brew  install tmux

Tmux 的快捷鍵前綴(Prefix)

爲了使自身的快捷鍵和其餘軟件的快捷鍵互不干擾,Tmux 提供了一個快捷鍵前綴。當想要使用快捷鍵時,須要先按下快捷鍵前綴,而後再按下快捷鍵。Tmux 所使用的快捷鍵前綴默認是組合鍵 Ctrl-b(同時按下 Ctrl 鍵和 b 鍵)。html

可是,因爲鍵盤上 Ctrl 鍵和 b 鍵距離太遠了,操做起來特別不方便,因此常常須要修改快捷鍵前綴:只需將如下配置加入到 Tmux 的配置文件 ~/.tmux.conf 中(沒有此文件就建立一個):java

#我的喜歡吧快捷鍵前綴設置爲 Ctrl + a unbind C-b set -g prefix C-a

Tmux 中的特殊功能

會話(session)

一個 Tmux 會話中能夠包含多個窗口。在會話外建立一個新的會話:nginx

tmux new -s <name-of-my-session>

進入會話後建立新的會話:只須要按下 Ctrl-b : ,而後輸入以下的命令:git

Ctrl-b
 :new -s <name-of-my-new-session>

在 Tmux 的會話間切換github

在會話內獲取會話列表,能夠按下Ctrl-b s。下圖所示的就是會話的列表:sql

Ctrl-b s


列表中的每一個會話都有一個 ID,該 ID 是從 0 開始的。按下對應的 ID 就能夠進入會話。
shell

在會話外獲取會話列表:swift

tmux ls

在會話外進入會話:vim

tmux attach -t <name-of-my-session> 或 tmux a -t <name-of-my-session> #進入列表中第一個會話 tmux attach 或 tmux a

臨時退出但不刪除會話:

Ctrl + b d

在會話內退出並刪除session

Ctrl+b 
:kill-session #刪除全部session Ctrl+b :kill-server

在會話外刪除指定session

tmux kill-session -t <name-of-my-session>

窗口(Window)

一個 Tmux 會話中能夠包含多個窗口。一個窗口中有能夠防止多個窗格。
在 Tmux 的會話中,現有的窗口將會列在屏幕下方。下圖所示的就是在默認狀況下 Tmux 列出現有窗口的方式。這裏一共有三個窗口,分別是「server」、「editor」和「shell」。

建立窗口:

Ctrl-c

查看窗口列表

Ctrl-b w

切換到指定窗口,只須要先按下Ctrl-b,而後再按下想切換的窗口所對應的數字。

Ctrl-0

切換到下一個窗口

Ctrl+b n

切換到上一個窗口

Ctrl+b p

在相鄰的兩個窗口裏切換

Ctrl+b l

重命名窗口

Ctrl+b ,

在多個窗口裏搜索關鍵字

Ctrl+b f

刪除窗口

Ctrl+b &

窗格(Panes)

一個tmux窗口能夠分割成若干個格窗。而且格窗能夠在不一樣的窗口中移動、合併、拆分。

建立pane橫切split pane horizontal

Ctrl+"

豎切split pane vertical

Ctrl+%

按順序在pane之間移動

Ctrl+b o

上下左右選擇pane

Ctrl+b 方向鍵上下左右

調整pane的大小(我發現按住Ctrl+b 再按 [上|下|左|右] 鍵也能夠實現相同的效果)

Ctrl+b 
:resize-pane -U #向上 Ctrl+b :resize-pane -D #向下 Ctrl+b :resize-pane -L #向左 Ctrl+b :resize-pane -R #向右

在上下左右的調整裏,最後的參數能夠加數字 用以控制移動的大小,例如:

Ctrl+b 
:resize-pane -D 5 #向下移動5行

在同一個window裏上下左右移動pane

Ctrl+b { (往左邊,往上面) Ctrl+b } (往右邊,往下面)

刪除pane

Ctrl+b x

更換pane排版(上下左右分隔各類換)

Ctrl+b 「空格」

移動pane至新的window

Ctrl+b !

移動pane合併至某個window

Ctrl+b :join-pane -t $window_name

按順序移動pane位置

Ctrl+b Ctrl+o

顯示pane編號

Ctrl+b q

顯示時間

 
Ctrl+b t


十分鐘學會 tmux

 

tmux 是一款終端複用命令行工具,通常用於 Terminal 的窗口管理。在 macOS 下,使用 iTerm2 能應付絕大多數窗口管理的需求。

 

如上圖所示,iTerm2 能新建多個標籤頁(快捷鍵 ⌘T),也能在同一個窗口中分割出多個窗格(快捷鍵 ⌘D 或 ⌘⇧D)。

tmux 相比 iTerm2 的優點在於:

  • iTerm2 的窗格切換快捷鍵(⌘⌥→)容易與其餘軟件全局快捷鍵衝突(例如 Spectacle 的窗口分割快捷鍵),tmux 因爲存在前綴快捷鍵,因此不存在快捷鍵衝突問題;

  • tmux 能夠在終端軟件重啓後經過命令行恢復上次的 session ,而終端軟件則不行;

  • tmux 簡潔優雅、訂製性強,學會以後也能在 Linux 上使用,有助於逼格提高。

接下來咱們花十分鐘來掌握下 tmux 的基礎用法:

 

安裝運行

macOS 上使用 Homebrew 安裝便可:

brew install tmux

安裝完成後,運行 tmux 新建一個 tmux 的會話(session),此時窗口惟一的變化是在底部會出現一個 tmux 的狀態欄。咱們先按下 tmux 默認的前綴快捷鍵 ⌃b 將其激活爲快捷鍵接收模式,再按下 % ,便可將當前窗口切分爲左右兩個窗格。

 

 

快捷鍵

通常狀況下 tmux 中全部的快捷鍵都須要和前綴快捷鍵 ⌃b 來組合使用(注:⌃ 爲 Mac 的 control 鍵),如下是經常使用的窗格(pane)快捷鍵列表,你們能夠依次嘗試下:

窗格操做

  • % 左右平分出兩個窗格

  • " 上下平分出兩個窗格

  • x 關閉當前窗格

  • { 當前窗格前移

  • } 當前窗格後移

  • ; 選擇上次使用的窗格

  • o 選擇下一個窗格,也可使用上下左右方向鍵來選擇

  • space 切換窗格佈局,tmux 內置了五種窗格佈局,也能夠經過 ⌥1 至 ⌥5來切換

  • z 最大化當前窗格,再次執行可恢復原來大小

  • q 顯示全部窗格的序號,在序號出現期間按下對應的數字,便可跳轉至對應的窗格

窗口操做

tmux 除了窗格之外,還有窗口(window) 的概念。依次使用如下快捷鍵來熟悉 tmux 的窗口操做:

  • c 新建窗口,此時當前窗口會切換至新窗口,不影響原有窗口的狀態

  • p 切換至上一窗口

  • n 切換至下一窗口

  • w 窗口列表選擇,注意 macOS 下使用 ⌃p 和 ⌃n 進行上下選擇

  • & 關閉當前窗口

  • , 重命名窗口,可使用中文,重命名後能在 tmux 狀態欄更快速的識別窗口 id

  • 0 切換至 0 號窗口,使用其餘數字 id 切換至對應窗口

  • f 根據窗口名搜索選擇窗口,可模糊匹配

 

 

會話操做

若是運行了屢次 tmux 命令則會開啓多個 tmux 會話(session)。在 tmux 會話中,使用前綴快捷鍵 ⌃b 配合如下快捷鍵可操做會話:

  • $ 重命名當前會話

  • s 選擇會話列表

  • d detach 當前會話,運行後將會退出 tmux 進程,返回至 shell 主進程

在 shell 主進程下運行如下命令能夠操做 tmux 會話:

 
tmux new -s foo # 新建名稱爲 foo 的會話
tmux ls # 列出全部 tmux 會話
tmux a # 恢復至上一次的會話
tmux a -t foo # 恢復名稱爲 foo 的會話,會話默認名稱爲數字
tmux kill-session -t foo # 刪除名稱爲 foo 的會話
tmux kill-server # 刪除全部的會話

 

 

除以上提到的快捷鍵之外,tmux 還有許多其餘的快捷鍵和命令,使用前綴快捷鍵 ⌃b 加 ? 能夠查看全部的快捷鍵列表,該列表視圖爲 tmux copy 模式,該模式下可以使用如下快捷鍵(無需加 ⌃b 前綴):

  • ⌃v 下一頁

  • Meta v 上一頁 (tmux 快捷鍵爲 Emacs 風格,這裏的 Meta 鍵可用 Esc 模擬)

  • ⌃s 向前搜索

  • q 退出 copy 模式

常見配置與問題

一、鼠標滾屏

tmux 默認配置中最糟糕的體驗就是滾屏查看和文本複製(你們能夠先試試看)。你須要先使用 ⌃b [ 快捷鍵進入 copy 模式,而後使用翻頁、字符定位來選擇須要的字符,效率遠沒有鼠標選擇來的快。

所以 tmux 提供了一些個性化配置項來優化這些配置,首先在 shell 中運行 touch ~/.tmux.conf 新建用戶配置文件。在文件中增長如下內容:

 
# 開啓鼠標模式
set -g mode-mouse on
​
# 容許鼠標選擇窗格
set -g mouse-select-pane on
​
# 若是喜歡給窗口自定義命名,那麼須要關閉窗口的自動命名
set-option -g allow-rename off
​
# 若是對 vim 比較熟悉,能夠將 copy mode 的快捷鍵換成 vi 模式
set-window-option -g mode-keys vi

 

  

配置文件修改完成後,能夠 tmux kill-server 重啓全部 tmux 進程,或者在 tmux 會話中使用 ⌃b : 進入控制檯模式,輸入 source-file ~/.tmux.conf 命令從新加載配置。

 

二、鼠標複製

tmux 下開啓鼠標滾屏後,複製文本有兩種方式:

  • 方法 1:使用 ⌃b z 進入窗格全屏模式,鼠標選擇文本的同時按住 option 鍵 ,而後使用 ⌘c 進行復制;

  • 方法 2:開啓 iTerm2 「在選擇時複製」選項,便可實現自動選擇複製。以下圖:

 

 

 

三、tips

  • screen 是另一款終端複用命令行,但他沒有 tmux 好看好用;

  • tmux 有個 bug ,致使從它啓動的 vscode 的複製粘貼快捷鍵會失效;

  • iTerm2 能夠經過 「Preferences -> Profiles -> Keyboard Behavior -> Left option key acts as +Esc」將鍵盤的左側 option 鍵映射爲 Meta 鍵

 

另外,最近看到兩篇不錯的 awksed 命令入門,感興趣的同窗能夠本身看一下。

https://www.cnblogs.com/kaiye/p/6275207.html

相關文章
相關標籤/搜索