首頁 > 軟體

打造高效前端工作環境 - tmux

2020-06-16 17:28:41

前言

 現在前端開發可不容易啊,先開啟個VIM,然後再開啟個lite-server,一不小心寫個ES2015還要開啟個gulp來做預編譯,如果能把這麼多個視窗放在一個工作台上那就好了。咦,tmux不就專幹這事的嗎?

tmux入門

安裝sudo apt install tmux

tmux的C/S架構

伺服器端(Server), 1個伺服器端維護1~N個對談;
對談(Session), 1個對談對應1~N個視窗;
視窗(Window), 1個視窗對應1~N個窗格;
窗格(Pane),vim、bash等具體任務就是在窗格中執行。

1.進入tmux
 在shell中執行tmux就會自動建立一個匿名對談、視窗和窗格,而窗格內正在執行著另一個shell程式,這時我們可以像平常使用shell一樣來工作。而tmux真正的威力在於對對談、視窗和窗格的管理,但在此之前我們要先了解開啟魔法的閥門——快捷鍵字首(prefix)。

2.快捷鍵字首(prefix)
 tmux為使自身的快捷鍵和其他軟體的快捷鍵互不干擾,特意提供一個快捷鍵字首,預設為Ctrl+b。因此當我們輸入任何tmux快捷鍵前必須先輸入Ctrl+b
 由於快捷鍵字首是可以重置的,因此後文將以<prefix>來指代快捷鍵字首。

3.操作Pane
建立(通過分割當前pane實現)
<prefix> ",水平分割當前pane
<prefix> %,垂直分割當前pane
關閉
<prefix> x,刪除當前pane
跳轉
<prefix> <up-arrow>/<down-arrow>/<left-arrow>/<right-arrow>, 通過上下左右方向鍵跳轉到對應的pane
<prefix> ;,跳轉到上次啟用的pane
<prefix> o,跳轉到下一個pane
<prefix> q,顯示各pane的編號,並輸入編號跳轉到對應的pane
修改尺寸
<prefix>+<up-arrow>/<down-arrow>/<left-arrow>/<right-arrow>, 通過上下左右方向修改當前pane的高寬
縮放
<prefix> z,縮放當前pane
其他
<prefix> {,將當前pane移動到最左邊
<prefix> },將當前pane移動到最右邊
<prefix> !,將當前pane轉變成window

4.操作Windoiw
建立
<prefix> c,建立window
重新命名
<prefix> ,,重新命名當前window
注意:由於tmux預設會根據當前pane執行的程式來改變window名稱,因此需要在~/.tmux.conf中加入set-option -g allow-rename off來固化window名稱。
關閉
<prefix> &,關閉當前window
跳轉
<prefix> n,跳轉到下一個window
<prefix> p,跳轉到上一個window
<prefix> 0...9,跳轉到對應的window
其他
<prefix> :swap-window -s 2 -t 1, 調轉編號為2和1的兩個window的次序
5.操作Session
<prefix> s,顯示所有對談
<prefix> $,重新命名
<prefix> d,脫離當前對談
<prefix> :kill-session,關閉當前對談
<prefix> (,跳轉到上一個對談
<prefix> ),跳轉到下一個對談

tmux進階

1.細摳Session操作
 我們為前端開發環境和後端開發環境分別建立兩個Session來獨立管理,那麼我們就可以靈活地在兩個Session間穿梭,並且可以分別和前端、後端開發人員協同工作,下面我們看看相關的命令吧。
$ tmux<prefix> :new, 建立匿名Session
$ tmux new -s mysession<prefix> :new -s mysession, 建立名為mysession的Session
$ tmux kill-session -t mysession,關閉mysession對談
$ tmux kill-session -a,關閉所有對談
$ tmux ls,顯示所有對談資訊
$ tmux a,附加到最近一個對談
$ tmux a -t mysession,附加到對談mysession

2.多個panes輸入同步
<prefix> + :setw synchronize-panes

 這個功能在通過ssh維護多台伺服器時十分有用!

3.複製貼上
 通過tmux我們可以通過純鍵盤操作實現跨pane的複製貼上。首先在~/.tmux.conf檔案中新增setw -g mode-keys vi,啟用vi鍵盤方式(hjkl方向鍵,/?nN搜尋)操作buffer內容。
進入複製模式,<prefix> [
開始選擇,<Spacebar>
選擇結束並將內容複製到新的buffer,<Enter>
取消選擇,<Esc>
從buffer_0貼上到游標位置,<prefix> ]
 可見複製的內容均暫存在buffer中,而tmux也提供直接操作buffer的命令給我們.
<prefix> : show-buffer,顯示buffer_0的內容
<prefix> : capture-pane, 儲存當前pane的內容
<prefix> : list-buffers, 顯示所有buffer內容
<prefix> : choose-buffer, 選擇buffer並貼上
<prefix> : save-buffer buf.txt, 儲存buffer內容到but.txt
<prefix> : delete-buffer -b 1, 刪除buffer_1的內容

4.美化狀態列
 預設的tmux樣式有點醜,而https://github.com/gpakosz/.tmux這個設定則為我們提供漂亮狀態列.

下面關於Tmux的文章您也可能喜歡,不妨看看:

Tmux:終端複用器 http://www.linuxidc.com/Linux/2013-07/86776.htm

運維基礎工具tmux介紹及使用 http://www.linuxidc.com/Linux/2016-10/135950.htm

tmux使用簡單教學 http://www.linuxidc.com/Linux/2014-10/107644.htm

Tmux 入門指南  http://www.linuxidc.com/Linux/2015-07/119843.htm

用 Tmux 和 Vim 打造 IDE  http://www.linuxidc.com/Linux/2015-06/119165.htm

CentOS下Tmux安裝和使用 http://www.linuxidc.com/Linux/2014-11/109375.htm

用 Tmux 和 Vim 打造 IDE  http://www.linuxidc.com/Linux/2015-06/119165.htm


IT145.com E-mail:sddin#qq.com