Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Tmux 快捷键 & 速查表

注意:本文内容适用于 Tmux 2.3 及以上的版本,但是绝大部分的特性低版本也都适用,鼠标支持、VI 模式、插件管理在低版本可能会与本文不兼容。

Tmux 快捷键 & 速查表

启动新会话:

tmux [new -s 会话名 -n 窗口名]

恢复会话:

tmux at [-t 会话名]

列出所有会话:

tmux ls

关闭会话:

tmux kill-session -t 会话名

关闭所有会话:

tmux ls | grep : | cut -d. -f1 | awk '{print substr($1, 0, length($1)-1)}' | xargs kill

在 Tmux 中,按下 Tmux 前缀 ctrl+b,然后:

会话

:new<回车>  启动新会话
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 切换窗格最大化/最小化

同步窗格

这么做可以切换到想要的窗口,输入 Tmux 前缀和一个冒号呼出命令提示行,然后输入:

:setw synchronize-panes

你可以指定开或关,否则重复执行命令会在两者间切换。 这个选项值针对某个窗口有效,不会影响别的会话和窗口。 完事儿之后再次执行命令来关闭。帮助

调整窗格尺寸

如果你不喜欢默认布局,可以重调窗格的尺寸。虽然这很容易实现,但一般不需要这么干。这几个命令用来调整窗格:

PREFIX : resize-pane -D          当前窗格向下扩大 1 格
PREFIX : resize-pane -U          当前窗格向上扩大 1 格
PREFIX : resize-pane -L          当前窗格向左扩大 1 格
PREFIX : resize-pane -R          当前窗格向右扩大 1 格
PREFIX : resize-pane -D 20       当前窗格向下扩大 20 格
PREFIX : resize-pane -t 2 -L 20  编号为 2 的窗格向左扩大 20 格

文本复制模式:

按下 PREFIX-[ 进入文本复制模式。可以使用方向键在屏幕中移动光标。默认情况下,方向键是启用的。在配置文件中启用 Vim 键盘布局来切换窗口、调整窗格大小。Tmux 也支持 Vi 模式。要是想启用 Vi 模式,只需要把下面这一行添加到 .tmux.conf 中:

setw -g mode-keys vi

启用这条配置后,就可以使用 h、j、k、l 来移动光标了。

想要退出文本复制模式的话,按下回车键就可以了。然后按下 PREFIX-] 粘贴刚才复制的文本。

一次移动一格效率低下,在 Vi 模式启用的情况下,可以辅助一些别的快捷键高效工作。

例如,可以使用 w 键逐词移动,使用 b 键逐词回退。使用 f 键加上任意字符跳转到当前行第一次出现该字符的位置,使用 F 键达到相反的效果。

vi             emacs        功能
^              M-m          反缩进
Escape         C-g          清除选定内容
Enter          M-w          复制选定内容
j              Down         光标下移
h              Left         光标左移
l              Right        光标右移
L                           光标移到尾行
M              M-r          光标移到中间行
H              M-R          光标移到首行
k              Up           光标上移
d              C-u          删除整行
D              C-k          删除到行末
$              C-e          移到行尾
:              g            前往指定行
C-d            M-Down       向下滚动半屏
C-u            M-Up         向上滚动半屏
C-f            Page down    下一页
w              M-f          下一个词
p              C-y          粘贴
C-b            Page up      上一页
b              M-b          上一个词
q              Escape       退出
C-Down or J    C-Down       向下翻
C-Up or K      C-Up         向下翻
n              n            继续搜索
?              C-r          向前搜索
/              C-s          向后搜索
0              C-a          移到行首
Space          C-Space      开始选中
               C-t          字符调序

杂项:

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

参考配置文件(~/.tmux.conf):

下面这份配置是我使用 Tmux 几年来逐渐精简后的配置,请自取。

# -----------------------------------------------------------------------------
# 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'

# -----------------------------------------------------------------------------
# 结束
# -----------------------------------------------------------------------------
@TIGERB

This comment has been minimized.

Copy link

commented May 12, 2017

不错不错~

@ehlxr

This comment has been minimized.

Copy link

commented Jul 18, 2017

学习了

@wangycc

This comment has been minimized.

Copy link

commented Aug 7, 2017

mark

@ccqpein

This comment has been minimized.

Copy link

commented Oct 1, 2017

棒!

@hassanyang

This comment has been minimized.

Copy link

commented Dec 22, 2017

棒!

@lvdongxiao

This comment has been minimized.

Copy link

commented Dec 24, 2017

good!

@guanghuange

This comment has been minimized.

Copy link

commented Dec 30, 2017

@WingCuengRay

This comment has been minimized.

Copy link

commented Jan 23, 2018

赞!感谢

@wangzhe1995

This comment has been minimized.

Copy link

commented Feb 7, 2018

很赞

@JamesBaiyong

This comment has been minimized.

Copy link

commented Feb 13, 2018

@v1c77

This comment has been minimized.

Copy link

commented Feb 28, 2018

👍

@eismog

This comment has been minimized.

Copy link

commented Mar 6, 2018

666

@eismog

This comment has been minimized.

Copy link

commented Mar 6, 2018

“666” is a Chinese word,homonym for “牛牛牛”(niú niú niú) or “溜溜溜”(liù liù liù), used to describe someone or something is very powerful,cool,impressive.

@iLHY

This comment has been minimized.

Copy link

commented Apr 17, 2018

666

@StayTherapy

This comment has been minimized.

Copy link

commented May 17, 2018

#果断 Star

@chinaHewei

This comment has been minimized.

Copy link

commented May 20, 2018

awesome!

@jingziming

This comment has been minimized.

Copy link

commented Jul 5, 2018

thanks

@wktadmin1

This comment has been minimized.

Copy link

commented Jul 11, 2018

超级棒

@bicongwang

This comment has been minimized.

Copy link

commented Jul 20, 2018

一些命令是否已经被弃用 & 更新?

@MiterV1

This comment has been minimized.

Copy link

commented Aug 3, 2018

很赞!!!

@ryerh

This comment has been minimized.

Copy link
Owner Author

commented Aug 26, 2018

@bicongwang 已更新
我最开始用的时候是 1.8,后来我印象中 2.1 和 2.3 有两次向后不兼容的配置变更,好像是关于鼠标和 vi 键位映射的,记不清了。

诸位在使用 Linux 的时候,如果你的发行版的包管理器没有 2.3 以上的 Tmux 直接安装,先去找找第三方源,例如 Debian 的 backport 源,CentOS 应该也是有对应的源。如果第三方源也搞不定,可以把 Tmux 的源码克隆下来自己 build 一份,需要先编译 ncurses 和 libevent 这两个依赖。

Ubuntu 和 macOS 不用关心,它俩的源一直都保持最新的。

@leizhiyuan

This comment has been minimized.

Copy link

commented Oct 24, 2018

非常棒,个人只开启

set -g @plugin 'tmux-plugins/tmux-yank'
set -g @plugin 'tmux-plugins/tpm'

这两个插件。

@Linkding

This comment has been minimized.

Copy link

commented Nov 3, 2018

在tmux下,命令行光标回到行首的ctrl+a,被覆盖了,如何跳呢?

@yujincheng08

This comment has been minimized.

Copy link

commented Dec 4, 2018

@Linkding 按两次^a

@chobijaeyu

This comment has been minimized.

Copy link

commented Dec 16, 2018

@yottaliu

This comment has been minimized.

Copy link

commented Jan 10, 2019

C-z还是有冲突,我建议C-j或C-m

@huahuayu

This comment has been minimized.

Copy link

commented Mar 26, 2019

C-z还是有冲突,我建议C-j或C-m

`相当好用,就是数字1左边的键

@jahentao

This comment has been minimized.

Copy link

commented Apr 15, 2019

怎样方便地在多个窗格间切换呢?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.