Tmux 使用笔记
==============
命令行
------
+--------------------------------+---------------------------+
| tmux new[-session] -s name -d | 新建会话(-d 是否在后台) |
+--------------------------------+---------------------------+
| tmux new -s name -n windowname | 新建会话及窗口 |
+--------------------------------+---------------------------+
| tmux at[tach] -t session | 重新连接(-t 后接会话名称) |
+--------------------------------+---------------------------+
| tmux ls | 显示保存的会话 |
+--------------------------------+---------------------------+
| tmux kill-session -t session | 删除会话 |
+--------------------------------+---------------------------+
tmux 命令
----------
输入 tmux 命令的两种方式
1. Pre : [command]
2. 在另一个终端,输入 tmux [command] -t sessionname
+------------------------------------+----------------------------------------------------------+
| choose-buffer | 显示所有buffer的内容并粘贴 |
+------------------------------------+----------------------------------------------------------+
| list-buffer | 显示所有buffer |
+------------------------------------+----------------------------------------------------------+
| save-buffer -a -b N output | 将N号buffer的内容输出(-a 表示添加内容) |
+------------------------------------+----------------------------------------------------------+
| show-buffer -b N | 显示N号buffer |
+------------------------------------+----------------------------------------------------------+
| set-buffer -b N data | 将N号buffer的内容重置 |
+------------------------------------+----------------------------------------------------------+
| capture-pane | 将当前面板的内容抓取至0号buffer中 |
+------------------------------------+----------------------------------------------------------+
| swap-pane -s sp -t tp | 交换sp和tp |
+------------------------------------+----------------------------------------------------------+
| break-pane | 将面板变成窗口 |
+------------------------------------+----------------------------------------------------------+
| join-pane -s Sess:S.p -t TSess:T.p | 将Sess会话中S窗口中的p面板(比如0:1.1)合并至T窗口中的面板 |
+------------------------------------+----------------------------------------------------------+
| new-window -n name "shell command" | 新建窗口并执行命令 |
+------------------------------------+----------------------------------------------------------+
| move-window -r -s Sess:w -t Sess:w | 在会话间移动窗口 |
+------------------------------------+----------------------------------------------------------+
快捷键绑定
-------------
**注意** :部分非默认绑定,需结合下节的配置文件使用。
+---------------+--------------------------------+
| Pre [/ESCAPE | 进入复制模式 |
+---------------+--------------------------------+
| Pre [N] ]/p | 复制buffer内的内容 |
+---------------+--------------------------------+
| Pre = | 选择并粘贴buffer |
+---------------+--------------------------------+
| Pre ( | 前一个会话 |
+---------------+--------------------------------+
| Pre ) | 后一个会话 |
+---------------+--------------------------------+
| Pre c | 新建窗口 |
+---------------+--------------------------------+
| Pre , | 改变窗口的名字 |
+---------------+--------------------------------+
| Pre $ | 改变会话的名字 |
+---------------+--------------------------------+
| Pre x | 前一个窗口 |
+---------------+--------------------------------+
| Pre n | 后一个窗口 |
+---------------+--------------------------------+
| Pre C-h/C-l | 前后窗口 |
+---------------+--------------------------------+
| Pre [0-9] | 选择窗口 |
+---------------+--------------------------------+
| Pre f | 搜索窗口 |
+---------------+--------------------------------+
| Pre w | 列出所有窗口并选择 |
+---------------+--------------------------------+
| Pre . | 移动窗口到新的编号 |
+---------------+--------------------------------+
| Pre & | 退出窗口 |
+---------------+--------------------------------+
| Pre Alt-[1-5] | 切换面板的布局 |
+---------------+--------------------------------+
| Pre Space | 切换面板布局 |
+---------------+--------------------------------+
| Pre C-o | 顺序轮换面板 |
+---------------+--------------------------------+
| Pre M-o | 逆序轮换面板 |
+---------------+--------------------------------+
| Pre {/} | 上/下交换面板(swap-pane -U/-D) |
+---------------+--------------------------------+
| Pre o | 切换当前面板 |
+---------------+--------------------------------+
| Pre l/r/u/d | 切换当前面板 |
+---------------+--------------------------------+
| Pre C-l/r/u/d | 改变面板大小 |
+---------------+--------------------------------+
| Pre L/R/U/D | 改变面板大小 |
+---------------+--------------------------------+
| Pre q | 显示面板编号并选择 |
+---------------+--------------------------------+
| Pre ! | 将面板改为窗口 |
+---------------+--------------------------------+
| Pre % | 竖排新建面板 |
+---------------+--------------------------------+
| Pre " | 横排新建面板 |
+---------------+--------------------------------+
| Pre z | 关闭面板 |
+---------------+--------------------------------+
参考配置文件
------------
::
# setw == set-window-option
# set -s server option
# set -g global option
# bind == bind-key
# add manpage highlight
set -g default-terminal "screen-it"
set -g prefix C-s
# get out of delay time
set -sg escape-time 1
# repeat-time
set -g repeat-time 1000
# let window/pane begin at 1
set -g base-index 1
set -g pane-base-index 1
setw -g mode-keys vi
# status-bar
set -g status-utf8 on
set -g status-left-length 40
set -g status-left "#[fg=black]Session: #S #[fg=blue]#I #[fg=red]#P"
set -g status-right "#[fg=black]%d %b %R"
set -g status-justify centre
# mouse
set -g mode-mouse on
set -g mouse-resize-pane on
set -g mouse-select-pane on
set -g mouse-select-window on
# keybinds
unbind C-b
bind C-s send-prefix
bind r source-file ~/.tmux.conf \; display "Reloaded!"
# windows
bind -r C-h select-window -t :-
bind -r C-l select-window -t :+
bind x last-window
# panes
bind | split-window -h
bind -r h select-pane -L
bind -r j select-pane -D
bind -r k select-pane -U
bind -r l select-pane -R
bind -r H resize-pane -L 5
bind -r J resize-pane -D 5
bind -r K resize-pane -U 5
bind -r L resize-pane -R 5
bind z kill-pane
# copy and paste
bind Escape copy-mode
bind p paste-buffer
bind -t vi-copy 'v' begin-selection
bind -t vi-copy 'y' copy-selection
# toggle log pane
bind P pipe-pane -o "cat >>~/#W.log" \; display "Toggled logging to ~/#W.log"
参考
-----
1. `Tmux: Productive Mouse-Free Development `_
2. `TMUX: The Terminal Multiplexer (Part 1) `_
3. `TMux: The Terminal Multiplexer (Part 2) `_
4. `使用 Tmux `_