在git-bash使用Tmux
以提取出來的Tmux的Windows版本為基礎,我們可以配置在git-bash中使用Tmux來高效工作。
Tmux介紹
Tmux是個窗口管理器,Tmux負責管理和保存命令行窗口。使用Tmux有很多好處,主要有以下兩點:
- 遠程服務器上持久地保存工作狀態。
比如,我在本地或服務器做某項工作,需要在Terminal打開幾個窗口。每次換工作,還需要切換。用Tmux,便可以按照Session進行管理,每次輕松打開切換。如果Tmux保存在遠端服務器,這點尤為方便。
- 隨時隨地斷開或連接Session。比如,在服務器上面運行一條命令,但是擔心連接斷開后命令終止,此時在tmux中運行命令,此時斷網關機便問題不大,只需隨后恢復Session便可以。
tmux基本架構
tmux是由Session
組成;一個Session可以包含多個window;一個window可以包含多個pane。
所謂pane,就是經常看到的,把一個window橫向或者縱向分割成多塊,每塊就是一個pane。這些pane一起組成了一個window。
tmux安裝
安裝方法參見這個Github連接。Tmux
目錄下有兩個文件,復制到git-bash下對應的的usr/bin
和usr/share
文件夾即可。
tmux基本配置
# 開啟鼠標模式
set-option -g 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
這上面只是一些基本配置。之前的GitHub倉庫中,在tmux
目錄下是有作者自己的.tmux.conf
配置文件的。按需取用,因為這個配置需要配合插件使用。
通用命令
# 以下命令可以關閉session,window,pane。
ctrl + d
exit
Prefix + x
tmux kill-session -t [name]
tmux kill-window -t [name]
tmux kill-pane -t [name]
# 上面的 name 可以用系統自動分配的 0, 1...來代替。比如 pane 就是用這樣的數字來區分的。
Seesion常用命令
Tmux為了防止與全局快捷鍵沖突,大部分快捷鍵需要先需要輸入前綴Ctrl + b,下文用Prefix代替。
# 創建&進入一個session
tmux new # 不指定session name
tmux new -s [session-name]
# 斷開(detach)Session
tmux detach
Prefix d # 要和 ctrl + d 區分
# 恢復Session
tmux a
tmux a -t [session-name]
# 列出當前Session
tmux ls # tmux外使用
Prefix s # tmux 內使用,這條命令不夠詳細;可以使用
Prefix w # 完全顯示 session + window的詳細信息
# 重命名Session,在tmux內使用
Prefix $
window常用命令
# 創建
Prefix c
# 選擇窗口
# 這個可以不用記,prefix+S 選擇窗口也很方便
Prefix + [number] # 選擇第n個窗口
Prefix + p/n # 前/后一個窗口
# 關閉窗口;只記exit即可
Prefix &
exit
# 列出所有window(包含其他Session)
# 這和prefix+s的區別是:會自動展開所有session下的Windows。
Prefix w
h/l # 打開/關閉session的詳情頁
j/k # 前后選擇
# 搜索窗口
Prefix f
# 重命名當前窗口
Prefix ,
pane常用命令
# 創建
Prefix % # 水平窗格,最常用;也就是左右兩格
Prefix '"' # 垂直窗格,上下兩格
# 切換
# 如果在配置文件中打開了鼠標點擊切換的話,就可以直接用鼠標
# 但是如果是純命令行,就需要使用了
Prefix o # 在窗格間切換
Prefix q # 顯示窗格編號,輸入編號切換
# 將當前窗格,在一個新窗口打開
# 這會在當前session下新建一個窗口
Prefix !
總結
這些命令經常使用,自然就記住了。