又雙叒叕一份Tmux配置:專為遠端設計的按鍵方案
Tmux是一個終端複用器,網上配置要多少有多少,但是秉承“自己的才是最好的”原則,我決定照葫蘆畫瓢寫一份自己的Tmux配置。
然後發現,網上大部分(99%)Tmux配置都沒有把遠端的情況考慮進去,例如VNC遠端快捷鍵、ssh遠端快捷鍵的傳送等問題都沒考慮進去,於是幾乎重新設計了所有常用的快捷鍵。然後又使用了一段時間,不斷改進,今天決定把它分享出來。
特點:
- 為遠端操作設計的快捷鍵,完美實現在Tmux裡跑Tmux的場景。
- 自動連線上一次退出的會話,無縫銜接上一次操作(防止意外退出而中斷操作)。
- 快捷鍵合理分配,所有快捷鍵操作都不需要移動手腕(膝上型電腦而言,移動手腕算我輸)。
- 外掛安裝/更新、自定義外觀、自定義設定均可一鍵操作(設定了快捷鍵直接編輯)。
- 一條命令即可安裝。
專案地址:https://github.com/izuolan/.tmux
Prefix
最佳:Alt-z
Prefix,這是整個Tmux能否高效使用的關鍵,因此Prefix兩個按鍵必須鍵程合適,不需要移動太遠的範圍。
Tmux預設是Ctrl-b
,大部分Tmux配置選擇改為Ctrl-a
,或者Ctrl-z
,老實說Ctrl-z
這個方案最容易讓人接受,鍵程最短,不容易誤按,然而大部分Terminal都把Ctrl-z
設為suspend快捷鍵,這可就尷尬了,特別是遠端時用vim打著程式碼,突然按兩下Prefix就把vim掛起了,非常影響使用。
於是嘗試不少組合之後,決定把 Alt-z
設為 Prefix,超短鍵程,沒有常用的快捷鍵衝突(大概)。考慮到鍵盤佈局差異,這兩個鍵一般都不會相隔太遠。
有了Prefix,接下來就是圍繞z
鍵設定快捷鍵。接下來不廢話,直接介紹快捷鍵設定,以及在解釋為何在遠端中這樣設定最科學。
會話
建立會話(new session,所以使用快捷鍵n
):
# 建立, tmux new -s <name-of-my-session> 建立一個新的會話
$ tmux new -s basic
# 在tmux中建立一個會話
[PREFIX-n] new -s <name-of-my-session>
離開會話(後臺執行,預設d
)
# 分離會話 detach
[PREFIX-d]
[detached (from session basic)]
# or
$ tmux detach
檢視會話列表,切換會話
# 檢視已有會話列表(list-session)
$ tmux ls
basic: 1 windows (created Wed Aug 5 14:54:04 2015) [200x49]
# 在tmux中檢視會話列表並切換
[PREFIX-s]
重新進入會話
# 連線會話(只有一個)
$ tmux attach
$ tmux attach -t basic
$ tmux a -t basic
關閉會話
# 退出會話
$ tmux kill-session -t <Num>
# or
[PREFIX-Alt-q]
# 殺掉全部會話
$ tmux kill-server
重新命名會話
# 重新命名會話
[PREFIX-$]
會話我基本沒有改動預設配置,因為我一般不會遇到需要操作多個會話的情況。
視窗
建立視窗(create window,所以設定為c
)
# 建立一個新的視窗
[PREFIX-c]
重新命名視窗(這個保留預設,
)
# 重新命名一個視窗
[PREFIX-,] 之後輸入名字回車
切換視窗
# 切換視窗
[PREFIX-[]
[PREFIX-]]
# 設定這兩個鍵是因為不需要移動手腕,一般就在Enter鍵上面,又剛好成對。vi中常用的h、l後面會用到,所以這裡不用。
# 切換到對應視窗
[PREFIX-1/2/3]
# 切換到上一個視窗
[PREFIX-Tab]
# 視覺化選擇切換到的視窗
[PREFIX-w]
退出視窗
# 退出視窗
exit
# 與視窗列表快捷鍵類似,`Alt-w`就是關閉,直接`w`就是視窗列表,簡單好記。
[PREFIX-Alt-w] 會有確認
皮膚
分割皮膚(鍵盤上唯有這兩個鍵最直觀表達分屏效果,所以就是\
和-
啦)
# 垂直/水平分割視窗
[PREFIX--] / [PREFIX-\]
關閉皮膚
# 關閉一個皮膚, 要確認
[PREFIX-x]
# 或者
exit [皮膚裡執行]
切換皮膚
[PREFIX-hjkl] pane之間移動
[PREFIX-arrow] pane之間移動
[PREFIX-Space] 最近使用兩個視窗之間切換
[PREFIX-q] 展示視窗數字並選擇跳轉
為了統一遠端與本地的快捷鍵,即便是Pane操作我也設定了需要Prefix才能觸發,不喜歡的話可以改為直接觸發,但這樣本地與遠端快捷鍵不統一,反而有些麻煩。
移動皮膚
[PREFIX-<] 當前pane移到左邊
[PREFIX->] 當前pane移到右邊
調整皮膚
[PREFIX-HJKL] pane大小調整
[PREFIX-Alt-arrow] pane大小調整
# 此處的Pane調整算是我最不滿意的一個地方,因為Alt-h剛好是man命令的快捷鍵,避免衝突只能放棄Alt-hjkl的方式,改為PREFIX-HJKL,這裡手指要多移動一次到Shift鍵上面真是讓人不爽。因此補充一組快捷鍵,使用方向鍵調整。
[PREFIX-z] 暫時把視窗變大
其他
[PREFIX-!] 當前皮膚在新的視窗中開啟
[PREFIX-space] 會自動切換依次使用這些佈局(幾種視窗布局輪流切換)
複製貼上
[PREFIX-[] 進入複製模式
[PREFIX-Enter] 進入複製模式
=> 可以進行的操作
space/v 開始選擇
Ctrl-v 整塊選擇
hjkl 方向鍵移動
w/b 向前向後移動一個單詞
fx/Fx 行內移動到下一個字元位置
ctrl-b/f 在緩衝區裡面翻頁
g/G 到緩衝區最頂/底端
/ ? 向下, 向上查詢
n/N 查詢後下一個, 上一個
Enter/y 複製
[PREFIX-]] 貼上
# 其他增強:
# 複製整個pane可見區域
[PREFIX-:] capture-pane
# 檢視緩衝區內容
[PREFIX-:] show-buffer
# 列出緩衝區列表
[PREFIX-:] list-buffers
# 從緩衝區列表選擇並插入到當期皮膚
[PREFIX-:] choose-buffer => 回車
其他
顯示全部快捷鍵
[PREFIX-?] 檢視所有快捷鍵
[PREFIX-e] 編輯Tmux配置
[PREFIX-E] 編輯主題
[PREFIX-`] 同步Pane操作
[PREFIX-~] 取消同步操作
命令模式
[PREFIX-:]
# 一些命令模式下的命令
# 新建視窗
new-window -n console
# 新建並執行命令
new-window -n processes "top"
增強
1. Tmuxinator
Tmuxinator 是一個 Ruby 的 gem 包,可用於建立 Tmux 的會話。它的工作方式是先在配置檔案中定義會話中的細節,然後用 1 條命令建立出這些會話
gem install tmuxinator
tmuxinator new project_a => ~/.tmuxinator/project_a.yml => 配置
啟動: tmuxinator start project_a
可以別名: mux start project_a
2. vim 外掛
christoomey/vim-tmux-navigator
, 安裝更便捷的導航跳轉
參考連結:
相關文章
- 又雙叒叕搶行了?使用 React 管理你的設計資產React
- 又雙叒叕是一個 canvas 動畫Canvas動畫
- 隨機圖片又雙叒叕炸啦隨機
- 又雙叒叕是一個動態簡歷
- ETC 詐騙又雙叒叕來了!老司機速看
- 華為雲的研究成果又雙叒叕被MICCAI收錄了!AI
- 又雙叒叕造新輪子:重構了自己寫的mvvm庫MVVM
- iPic 又雙叒叕支援一個圖床,還是國產的:騰訊雲 COS圖床
- 又雙叒叕一個Ant Design的Vue輪子(vue-antd-ui)VueUI
- Elasticsearch安全又雙叒叕出問題? 搜尋引擎該怎麼選Elasticsearch
- 蟬聯雙獎!前排圍觀,思邁特軟體又雙叒叕獲獎啦!
- 亞馬遜雲服務又又雙叒叕出現故障了,多家網站因此受到影響亞馬遜網站
- 又叒叕是一篇講快取的文章快取
- tmux常用按鍵UX
- 又雙叒叕拿獎!騰訊安全天御榮獲“聯邦學習應用獎”聯邦學習
- 駭客又雙叒叕得手了,DDOS-Guard資料庫及原始碼被拍賣資料庫原始碼
- 阿里又雙叒要做遊戲了阿里遊戲
- Intel處理器又雙叒叕曝漏洞:二代酷睿起全受影響Intel
- 聖誕又雙叒來了:因為AI,所以愛AI
- AOAI 技能持續升級?【位元熊充電棧】加量返場,又雙叒叕來啦!AI
- goal 的使用者認證(Auth)模組完成,離生產環境又雙叒叕近了一步!Go
- windows遠端桌面按鍵失效Windows
- 酒店行業又雙叒叕出事了!萬豪酒店超5億住客資料外洩!行業
- Mars - 又雙叒叕一個多端開發框架?這次是 Vue 驅動,能完美適配 H5框架VueH5
- 遠端桌面按鍵失效變成快捷鍵
- 又雙叒叕獲獎了!OceanBase 榮獲2021年度技術卓越獎&年度最佳創新企業獎
- 遠端控制篇:模擬按鍵 (轉)
- 發獎了!App Store 又雙叒發“年終獎”了。APP
- 騰訊移動推送又雙叕優化Android 6.0推送啦!優化Android
- vscode遠端程式設計 終極方案VSCode程式設計
- tmux配置UX
- 換湯不換藥!BlueHero挖礦團伙又雙叒發新版本
- gdb配置預設連線遠端
- 三行程式碼按鍵消抖 獨立按鍵 矩陣按鍵 長按 短按 雙擊行程矩陣
- tmux resurrect 配置UX
- 做完《饑荒》《缺氧》再去做卡牌,這家開發商又雙叒成功了
- server端雙socket 設計方式Server
- 谷歌最新驗證系統又雙叒被「破解」了,這次是強化學習谷歌強化學習