本文所有快捷鍵和配置文件均在如下環境成功運行:
操做系統:MacOS 10.14
tmux 版本:tmux 2.9a
複製代碼
最近進入了工做熱情高漲的時期,瘋狂的重構、打包、上傳,每次這樣搞都要重複開好多的終端窗口並且要一個一個的用鼠標點來點去的很麻煩(最近莫名的嫌棄鼠標),因此想起了以前被本身放到「待會兒再讀」收藏夾的「十分鐘學會 tmux
」,貌似這個工具能夠幫助我更好的管理終端窗口。html
話很少說直接上手:git
PS:若是你也像我同樣第一次接觸這類軟件,那麼我建議你不要觀望,先把軟件下下來而後根據快捷鍵列表一個一個的嘗試一次,再決定要不要使用,整個過程不超過十分鐘可是卻能給你節省 N 多觀望的時間。github
tmux
能夠應用在各種終端上(Windows
下未測試)支持 Vi/Emacs
風格的鍵盤映射shell
brew install tmux # MacOS
pacman -S tmux # Arch Linux
apt-get install tmux # Ubuntu
yun install tmux # CentOS
複製代碼
由於裝了黑蘋果因此不太關注 Windows
了,簡單的搜索了一下網上是有 Windows
下的解決方案的,這裏給出一個我看到的文章(未驗證):OneFeed:在 Windows 上安裝 tmuxwindows
名詞 | 我的理解 |
---|---|
Session 會話 | 至關於一個瀏覽器進程 |
Window 窗口 | 至關於一個瀏覽器窗口 |
Tab 窗格 | 至關於一個瀏覽器頁面 |
tmux new -s foo # 新建名爲 foo 的會話
tmux ls # 列出所有會話
tmux a # 恢復上一次會話
tmux a -t foo # 恢復名爲 foo 的會話
tmux kill-session -t foo # 刪除名爲 foo 的會話
tumx kill-server # 刪除全部會話
複製代碼
tmux
默認前綴爲 ctrl + b
瀏覽器
注意:下面的快捷鍵整理中默認省略前綴bash
注意:如下僅整理了比較經常使用的快捷鍵,能夠在 tmux 中經過 ctrl + b + ?
的形式獲取所有快捷鍵session
:new<Enter> # 啓動新的會話
s # 列出所有會話
$ # 重命名當前會話
複製代碼
c # 建立新的窗口
w # 列出所有窗口
n # 跳到下一個窗口
p # 跳到前一個窗口
f # 查找窗口
, # 重命名當前窗口
& # 關閉當前窗口
swap-window -s 3 -t 1 # 交換 3 號和 1 號窗口
swap-window -t 1 # 交換當前窗口和 1 號窗口
move-window -t 1 # 移動當前窗口到 1 號窗口
複製代碼
% # 垂直分割
" # 水平分割 o # 交換窗格 x # 關閉窗格 空格 # 切換佈局 q # 顯示每一個窗格序號,能夠經過序號快速定位 { # 與上一個窗格交換位置 } # 與下一個窗格交換位置 z # 切換窗格最大化/最小化 :resize-pane -D # 當前窗格向下擴大 1 格 :resize-pane -U # 當前窗格向上擴大 1 格 :resize-pane -L # 當前窗格向左擴大 1 格 :resize-pane -R # 當前窗格向右擴大 1 格 :resize-pane -D 20 # 當前窗格向下擴大 20 格 :resize-pane -t 2 -L 20 # 編號爲 2 的窗格向左擴大 20 格 複製代碼
d # 退出 tmux(tmux 仍在後臺運行)
t # 窗口中央顯示一個數字時鐘
? # 列出全部快捷鍵
: # 命令提示符
複製代碼
# 鼠標支持 - 設置爲 on 來啓用鼠標(與 2.1 以前的版本有區別,請自行查閱 man page)
* set -g mouse on
# 設置默認終端模式爲 256color
set -g default-terminal "screen-256color"
# 啓用活動警告
setw -g monitor-activity on
set -g visual-activity on
# 居中窗口列表
set -g status-justify centre
# 最大化/恢復窗格
unbind Up bind Up new-window -d -n tmp \; swap-pane -s tmp.1 \; select-window -t tmp
unbind Down
bind Down last-window \; swap-pane -s tmp.1 \; kill-window -t tmp
複製代碼
注意:具體配置方法在配置文件的備註裏,我就不贅述了工具
# 來源:Github
# 做者:ryerh
# 地址:https://gist.github.com/ryerh/14b7c24dfd623ef8edc7
# -----------------------------------------------------------------------------
# Tmux 基本配置 - 要求 Tmux >= 2.3
# 若是不想使用插件,只須要將此節的內容寫入 ~/.tmux.conf 便可
# -----------------------------------------------------------------------------
# C-b 和 VIM 衝突,修改 Prefix 組合鍵爲 Control-Z,按鍵距離近
set -g prefix C-z
set -g base-index 1 # 窗口編號從 1 開始計數
set -g display-panes-time 10000 # PREFIX-Q 顯示編號的駐留時長,單位 ms
set -g mouse on # 開啓鼠標
set -g pane-base-index 1 # 窗格編號從 1 開始計數
set -g renumber-windows on # 關掉某個窗口後,編號重排
setw -g allow-rename off # 禁止活動進程修改窗口名
setw -g automatic-rename off # 禁止自動命名新窗口
setw -g mode-keys vi # 進入複製模式的時候使用 vi 鍵位(默認是 EMACS)
# -----------------------------------------------------------------------------
# 使用插件 - via tpm
# 1. 執行 git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
# 2. 執行 bash ~/.tmux/plugins/tpm/bin/install_plugins
# -----------------------------------------------------------------------------
setenv -g TMUX_PLUGIN_MANAGER_PATH '~/.tmux/plugins'
# 推薦的插件(請去每一個插件的倉庫下讀一讀使用教程)
set -g @plugin 'seebi/tmux-colors-solarized'
set -g @plugin 'tmux-plugins/tmux-pain-control'
set -g @plugin 'tmux-plugins/tmux-prefix-highlight'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-yank'
set -g @plugin 'tmux-plugins/tpm'
# tmux-resurrect
set -g @resurrect-dir '~/.tmux/resurrect'
# tmux-prefix-highlight
set -g status-right '#{prefix_highlight} #H | %a %Y-%m-%d %H:%M'
set -g @prefix_highlight_show_copy_mode 'on'
set -g @prefix_highlight_copy_mode_attr 'fg=white,bg=blue'
# 初始化 TPM 插件管理器 (放在配置文件的最後)
run '~/.tmux/plugins/tpm/tpm'
# -----------------------------------------------------------------------------
# 結束
# -----------------------------------------------------------------------------
複製代碼
因爲我對 Vim
的操做方式還不是很熟悉因此暫時不整理這部份內容了,等我何時用到了再來更新。佈局
貓哥_kaiye:十分鐘學會 tmux ryerh: Tmux 快捷鍵 & 速查表 Hattle Land:優雅地使用命令行:Tmux 終端複用