说明

本文章将默认的Ctrl+b操作改成Ctrl+a具体修改方法在最下面

若您习惯Ctrl+b可将本文章的所有Ctrl+a替换为Ctrl+b

下载

ubuntu用户可以

sudo apt-get install tmux

功能

  1. 分屏。

  2. 允许断开Terminal连接后,继续运行进程。

结构

一个tmux可以包含多个session,一个session可以包含多个window,一个window可以包含多个pane
实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
tmux:
session 0:
window 0:
pane 0
pane 1
pane 2
...
window 1:
pane 0
window 2:
...
session 1
session 2
...

操作

终端层

tmuxtmux new -s XX

新建一个session,其中包含一个window,window中包含一个pane,pane里打开了一个shell对话框

默认是数字编号为session名字

tmux new -s brown 新建一个名为brownsession

tmux ls

列出所有的session

tmux a或tmux attach

打开之前挂起的session

tmux a -t X 进入到名字为X的session

Ctrl+a $

重命名session

tmux kill-session -t X

杀死指定session

session指令

Ctrl+a

进入命令行模式可以直接输入ls等命令

Ctrl+a ?

显示帮助文档

Ctrl+a d

断开当前session

Ctrl+a D

选择需要断开的session

Ctrl+a Ctrl+z

挂起当前会话

Ctrl+a r

强制重载当前会话

Ctrl+a s

选择其它session

  • 方向键----上:选择上一项 session/window/pane
  • 方向键----下:选择下一项 session/window/pane
  • 方向键 ---- 左:展开当前项 session/window
  • 方向键 ----右:闭合当前项 session/window

Ctrl+a ~

列出提示信息缓存

Window指令

Ctrl+a c

在当前session中创建一个新的window

Ctrl+a &

关闭当前窗口

Ctrl+a 0~9

切换到指定窗口

Ctrl+a p

切换到上一窗口

Ctrl+a n

切换下一窗口

Ctrl+a w

选择其它window,操作方法与选择session一致

其实就是将上面sessionwindow展开

Ctrl+a ,

重命名当前窗口

Ctrl+a .

修改当前窗口编号(适用于窗口重新排序)

Ctrl+a f

快速定位到窗口(输入关键字匹配窗口名称)

Pane指令

Ctrl+a %

先按下Ctrl+a后手指松开,然后按\% (shift+5)

将当前pane左右平分成两个pane

Ctrl+a "

先按下Ctrl+a后手指松开,然后按" (shift+')

将当前pane上下平分成两个pane

Ctrl+a x

关闭当前面板(关闭前需输入y or n确认

Ctrl+d

关闭当前pane

如果当前window的所有pane均已关闭,则自动关闭window

如果当前session的所有window均已关闭,则自动关闭session

Ctrl+a z

将当前pane全屏/取消全屏

Ctrl+a !

将当前面板移动到新的窗口打开(原窗口中存在两个及以上面板有效)

Ctrl+a ;

切换到最后一次使用的面板

Ctrl+a q

显示面板编号,在编号消失前输入对应的数字可切换到相应的面板

Ctrl+a {

向前置换当前面板

Ctrl+a }

向后置换当前面板

Ctrl+a o

选择下一面板

Ctrl+a Ctrl_o

顺时针旋转当前窗口中的所有面板

Ctrl+a 方向键

先按下Ctrl+a后手指松开,然后按方向键

选择相邻的pane

Ctrl+a+方向键

按下Ctrl + a同时按方向键,可以调整pane之间分割线的位置

Ctrl+a Alt+方向键

以5个单元格为单位调整当前面板边缘

Ctrl+a Ctrl+方向键

以1个单元格为单位调整当前面板边缘

Ctrl+a t

显示时钟

Ctrl+a PageUp

翻阅当前pane内的内容

鼠标操作

默认不支持鼠标操作但是本文最后修改默认快捷键中有相关配置来支持鼠标操作

  1. 鼠标点击可以选择pane

  2. 鼠标拖动pane之间的分割线,可以调整分割线的位置

  3. 鼠标滚轮:翻阅当前pane内的内容

  4. 在tmux中选中文本时,需要按住Shift键(仅支持Windows和Linux,不支持Mac,不过该操作并不是必须的,因此影响不大)

复制/粘贴文本的通用方式:

复制:按下Ctrl+a后松开手指,然后按[ 然后鼠标选中要复制的文字即可
粘贴:按下Ctrl+a后松开手指,然后按],会将剪贴板中的内容粘贴到光标处

有网友说

  1. 按 Ctrl+a 再按 [ 进入复制模式
  2. 按 Ctrl+f(也可是 b n p)移动光标到开始位置
  3. 按 Ctrl+Space 进行标记
  4. 再移动光标至结束位置
  5. 按 Alt+w 复制选中的区域,复制以后会自动退出复制模式
  6. 按 Ctrl+b 再按 ] 就会把刚才复制在的内容粘贴在当前光标处

修改默认快捷键

  1. 修改~\.bashrc

​ 增加到根目录下的.bashrc就可以了

1
alias tmux='tmux -u'

​ 更改.bashrc之后尽量source一下
​ 在根目录

1
source .bashrc
  1. 修改~\.tmux.conf

​ 在根目录

1
vim .tmux.conf

​ 使用 :set paste,然后按ii进入插入模式
​ 然后 shift + insert 粘贴进去就行了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
set-option -g status-keys vi
setw -g mode-keys vi

setw -g monitor-activity on

# setw -g c0-change-trigger 10
# setw -g c0-change-interval 100

# setw -g c0-change-interval 50
# setw -g c0-change-trigger 75


set-window-option -g automatic-rename on
set-option -g set-titles on
set -g history-limit 100000

#set-window-option -g utf8 on

# set command prefix
set-option -g prefix C-a
unbind-key C-b
bind-key C-a send-prefix

bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D

bind < resize-pane -L 7
bind > resize-pane -R 7
bind - resize-pane -D 7
bind + resize-pane -U 7


bind-key -n M-l next-window
bind-key -n M-h previous-window

set -g status-interval 1
# status bar
set -g status-bg black
set -g status-fg blue


#set -g status-utf8 on
set -g status-justify centre
set -g status-bg default
set -g status-left " #[fg=green]#S@#H #[default]"
set -g status-left-length 20


# mouse support
# for tmux 2.1
# set -g mouse-utf8 on
set -g mouse on
#
# for previous version
#set -g mode-mouse on
#set -g mouse-resize-pane on
#set -g mouse-select-pane on
#set -g mouse-select-window on


#set -g status-right-length 25
set -g status-right "#[fg=green]%H:%M:%S #[fg=magenta]%a %m-%d #[default]"

# fix for tmux 1.9
bind '"' split-window -vc "#{pane_current_path}"
bind '%' split-window -hc "#{pane_current_path}"
bind 'c' new-window -c "#{pane_current_path}"

# run-shell "powerline-daemon -q"

# vim: ft=conf

​ 在根目录输入这个回车即可

1
tmux source-file ~/.tmux.conf