首頁 > 軟體

更好利用 tmux 對談的 4 個技巧

2020-06-16 16:44:03

tmux 是一個終端多路複用工具,它可以讓你系統上的終端支援多面板。你可以排列面板位置,在每個面板執行不同進程,這通常可以更好的地利用你的螢幕。如果你已經開始使用 tmux 了,那麼這裡有一些技巧可以幫你更好地使用它。

本文假設你當前的字首鍵是 Ctrl+b。如果你已重新對映該字首,只需在相應位置替換為你定義的字首即可。

設定終端為自動使用 tmux

使用 tmux 的一個最大好處就是可以隨意的從對談中斷開和重連。這使得遠端登入對談功能更加強大。你有沒有遇到過丟失了與遠端系統的連線,然後好希望能夠恢復在遠端系統上做過的那些工作的情況?tmux 能夠解決這一問題。

然而,有時在遠端系統上工作時,你可能會忘記開啟對談。避免出現這一情況的一個方法就是每次通過互動式 shell 登入系統時都讓 tmux 啟動或附加上一個對談。

在你遠端系統上的 ~/.bash_profile 檔案中加入下面內容:

  1. if[-z "$TMUX"];then
  2. tmux attach -t default||tmuxnew-s default
  3. fi

然後登出遠端系統,並使用 SSH 重新登入。你會發現你處在一個名為 default 的 tmux 對談中了。如果退出該對談,則下次登入時還會重新生成此對談。但更重要的是,若您正常地從對談中分離,那麼下次登入時你會發現之前工作並沒有丟失 - 這在連線中斷時非常有用。

你當然也可以將這段設定加入本地系統中。需要注意的是,大多數 GUI 介面的終端並不會自動使用這個 default 對談,因此它們並不是登入 shell。雖然你可以修改這一行為,但它可能會導致終端巢狀執行附加到 tmux 對談這一動作,從而導致對談不太可用,因此當進行此操作時請一定小心。

使用縮放功能使注意力專注於單個進程

雖然 tmux 的目的就是在單個對談中提供多視窗、多面板和多進程的能力,但有時候你需要專注。如果你正在與一個進程進行互動並且需要更多空間,或需要專注於某個任務,則可以使用縮放命令。該命令會將當前面板擴充套件,佔據整個當前視窗的空間。

縮放在其他情況下也很有用。比如,想象你在圖形桌面上執行一個終端視窗。面板會使得從 tmux 對談中拷貝和粘帖多行內容變得相對困難。但若你縮放了面板,就可以很容易地對多行資料進行拷貝/粘帖。

要對當前面板進行縮放,按下 Ctrl+b, z。需要恢復的話,按下相同按鍵組合來恢復面板。

係結一些有用的命令

tmux 預設有大量的命令可用。但將一些更常用的操作系結到容易記憶的快捷鍵會很有用。下面一些例子可以讓對談變得更好用,你可以新增到 ~/.tmux.conf 檔案中:

  1. bind r source-file~/.tmux.conf ; display "Reloaded config"

該命令重新讀取你組態檔中的命令和鍵繫結。新增該條繫結後,退出任意一個 tmux 對談然後重新啟動一個對談。現在你做了任何更改後,只需要簡單的按下 Ctrl+b, r 就能將修改的內容應用到現有的對談中了。

  1. bind V split-window -h
  2. bind H split-window

這些命令可以很方便地對視窗進行橫向切分(按下 Shift+V)和縱向切分(Shift+H)。

若你想檢視所有系結的快捷鍵,按下 Ctrl+B, ? 可以看到一個列表。你首先看到的應該是複製模式下的快捷鍵系結,表示的是當你在 tmux 中進行複製粘帖時對應的快捷鍵。你新增的那兩個鍵系結會在字首模式prefix mode中看到。請隨意把玩吧!

使用 powerline 更清晰

如前文所示,powerline 工具是對 shell 的絕佳補充。而且它也相容在 tmux 中使用。由於 tmux 接管了整個終端空間,powerline 視窗能提供的可不僅僅是更好的 shell 提示那麼簡單。

Screenshot of tmux powerline in git folder

如果你還沒有這麼做,按照 這篇文章 中的指示來安裝該工具。然後使用 sudo 來安裝附件:

  1. sudo dnf install tmux-powerline

接著重新啟動對談,就會在底部看到一個漂亮的新狀態列。根據終端的寬度,預設的狀態列會顯示你當前對談 ID、開啟的視窗、系統資訊、日期和時間,以及主機名。若你進入了使用 git 進行版本控制的專案目錄中還能看到分支名和用色彩標注的版本庫狀態。

當然,這個狀態列具有很好的可設定性。享受你新增強的 tmux 對談吧,玩的開心點。

via: https://fedoramagazine.org/4-tips-better-tmux-sessions/

作者:Paul W. Frields 選題:lujun9972 譯者:lujun9972 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


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