你的鼠標正在拖慢你的速度。
鼠標的發(fā)明為我們與計算機的交互創(chuàng)造了一種新的方式。我們可以單擊、雙擊、三連擊,甚至還能猛擊某個應用。鼠標和圖形交互界面的產(chǎn)生,使得使用計算機對普通用戶來說變得更加容易。但是對于程序員來說,鼠標有很大的負面影響。
編譯、構造軟件時,我們會使用多個程序一起工作。比如一個 web 開發(fā)者可能會同時運行一個數(shù)據(jù)庫控制臺,一個 web 服務端和一個文本編輯器。用鼠標在這些窗口之間來回切換不僅會浪費寶貴的時間還會打斷你的思路。這看起來似乎沒什么,但是你的手需要從鍵盤移開,再放到鼠標上,然后定位,最后再完成鼠標操作,這個過程非常容易讓人分心。
使用 tmux,你可以創(chuàng)造一個如圖1(使用 tmux 作為開發(fā)環(huán)境)所示的工作環(huán)境。使用 tmux 的窗口,你可以非常輕松地在一個非常簡單的環(huán)境中管理文本編輯器、數(shù)據(jù)庫控制臺、本地 web 服務器。你還可以把 tmux 窗口分割為多個區(qū)域,讓多個程序并排顯示或運行。這意味著你可以在一個窗口里讓文本瀏覽器,irc 聊天客戶端,或自動化測試與你的主編輯器同時顯示、運行。
最棒的是,你僅僅通過鍵盤快捷鍵就可以非??焖俚卦谶@些窗口和面板之間互相移動,這樣會極大地提高你的注意力和生產(chǎn)效率。
在這本書中,你可以學到如何配置、使用并自定義 tmux。你會學習到如何同時管理多個程序,編寫腳本來創(chuàng)建自定義的環(huán)境,還能學會如何使用 tmux 與其他人遠程工作。使用 tmux,你可以創(chuàng)建一個幾乎純鍵盤操作的工作環(huán)境。
圖1 - 使用 tmux 作為開發(fā)環(huán)境
tmux 是一個終端復用器(terminal multiplexer)。它讓我們可以使用單一環(huán)境就可以登錄多個終端或窗口,每個終端或窗口都運行著獨立的進程或程序。例如,我們可以打開 tmux 然后運行 Vim 編輯器。然后可以新建一個窗口運行一個數(shù)據(jù)庫控制臺,然后在這些程序之間來回切換,這一切都是在一個會話(session)中進行的。
如果你使用了一個現(xiàn)代操作系統(tǒng)并且終端有標簽頁功能的話,這聽起來并不新鮮。但是同時運行多個程序只是 tmux 的特性之一。我們可以將窗口(window)劃分為水平或垂直面板(pane),也就是說可以在同一個屏幕上并排顯示或運行兩個或多個程序。這些操作都不使用鼠標。
我們還能從一個會話中分離出來,讓整個工作環(huán)境都在后臺運行。如果你以前用過 GNU-Screen,那你對這個特性一定感到很熟悉。tmux 與 GNU-Screen 有許多的相似之處,但是 tmux 的功能更多,而且 tmux 的配置更容易。由于 tmux 使用了 client-server 模型,因此可以在一個中央位置控制窗口和面板,甚至可以從一個終端窗口就實現(xiàn)多個會話之間的切換。這個 client-server 模型還可以讓我們創(chuàng)建 tmux 腳本并與其他窗口或應用程序交互。
在本書中,我們會探討以上所有這些特性等等。
本書的目標是幫助 Mac 或 Linux 程序員在使用終端時更加得心應手。
如果你是一個軟件開發(fā)人員,你會看到如何使用 tmux 構建一個開發(fā)環(huán)境,通過它你可以輕而易舉地同時使用多個終端會話工作。并且如果你已經(jīng)能非常熟練地使用 Vim 或 Emacs,你會看到 tmux 是如何進一步提高你的工作效率。
如果你是一個系統(tǒng)管理員或偶爾與遠程服務器打交道的開發(fā)人員,你可能會對如何利用 tmux 持久地監(jiān)測服務器狀態(tài)感興趣。
本書將會向你展示如何把 tmux 融入到你的工作中,包括 tmux 的基本特性以及如何在每天的工作場景中應用這些特性。
在第 1 章,基礎知識。你會學到關于 tmux 的基本特性,包括創(chuàng)建會話,面板,窗口以及學習如何執(zhí)行基本的操作。
在第 2 章,配置 tmux。你會學習到如何重定義許多 tmux 默認的快捷鍵和外觀配置。
在第 3 章,腳本定制 tmux 環(huán)境。你會學習到如何編寫你自己的開發(fā)環(huán)境腳本,包括使用命令行界面,配置文件和 tmuxinator 工具。
之后,在第 4 章,處理文本和緩沖區(qū)。你會學習到如何通過鍵盤快捷鍵在緩沖區(qū)之間移動文本,如何選中并復制文本,以及如何工作于多個粘貼緩沖區(qū)。
接下來,在第 5 章,使用 tmux 結對編程。你會學習到如何配置 tmux,使你和同事可以在不同的計算機上使用 tmux 基于同一份代碼一起工作。
最后,在第 6 章,工作流。本章涵蓋了更多管理窗口、面板和會話,并向你展示如何使用 tmux 更進一步地高效工作。
要使用 tmux,你需要有一臺運行 Mac OS X 或 UNIX/Linux 操作系統(tǒng)的計算機。
不幸的是,tmux 不支持 Windows 系統(tǒng),但 tmux 在 Linux 系統(tǒng)的虛擬機、VPS 或共享主機環(huán)境中依然可以良好運行。
盡管不是必須的,使用文本編輯器例如 Vim 或 Emacs 的經(jīng)驗將會對學習使用 tmux 非常有幫助。tmux 的工作機制和它們類似,而且 tmux 有一些預定義的鍵盤快捷鍵會讓使用過這些編輯器的讀者們感到熟悉。
tmux 是一個由鍵盤驅動的工具。你會在本書中遇到大量的鍵盤快捷鍵。由于 tmux 提供了大小寫敏感的鍵盤快捷鍵,因此你可能會對本書中提到的快捷鍵感到理解不是很清晰。
為了盡可能地簡潔,下面是本書中所使用的一些約定。
CTRL- b
表示“同時按下 CTRL
鍵和 b
鍵”。CTRL- R
表示“同時按下 CTRL
鍵和 R
鍵(大寫 R,你可能需要同時按下 SHIFT
鍵和 r
鍵,我不會在這些按鍵中特別說明需要按下 SHIFT
鍵)”。CTRL- b d
表示“同時按下 CONTROL
鍵和 b
鍵,然后松開它們,然后再按下 d
鍵”。在第 1 章,基礎知識,你會學習關于命令前綴(command prefix),使用命令前綴,CTRL- b d
可以表示為 PREFIX d
。$ tmux new-session
美元符號只是終端會話的提示符,在終端輸入命令時并不需要輸入這個符號。
本書的網(wǎng)站是一個交互式的論壇,同時你也可以在上面反饋本書的錯誤之處。網(wǎng)站上有本書中所建立的配置文件和腳本文件,你可以在網(wǎng)站上直接下載這些源代碼。
使用 tmux 讓我工作效率大增,我也很高興能和大家分享我得經(jīng)驗。讓我們開始吧,我們先來安裝 tmux,了解它的基本特性。
更多建議: