用户手册阅读
tmux 的用户手册对tmux的所有特性都有详细的介绍,每个命令和配置都可以在里面找到。主要分为下面几块,可以按需快速找到要查阅的内容
DESCRIPTION
介绍tmux基本功能
DEFAULT KEY BINDINGS
介绍默认的按键配置
COMMAND PARSING AND EXECUTION
解释命令是怎么和运行的。主要包括在终端,以及配置文件,或者绑定按键的方式来运行命令:
1 | $ tmux set-option -g status-style bg=cyan # 终端直接运行命令 |
PARSING SYNTAX
介绍命令解析的语法,每条命令以分号结束,例如 $tmux neww \; splitw
如果是在tmux中执行则不需要转义 neww ; splitw
另外还有 #
用于注释,而命令所需参数必须通过 '
"
或者{}
来传递。单双引号不能跨行使用,大括号却可以。
COMMANDS
介绍命令支持的选项,大部分都可以支持 -t/s 的选项,分别用来指定目标对象(target)和源对象(source)。对于目标类型的不同,参数解析的方式也不一样:
会话 target-session ,参数解析的顺序如下:
$
为前缀的 sessionID会话名称的精确匹配
会话名称的前缀匹配,注意如果加上了
=
来指定的话,只接受精确匹配fnmatch
如果找到单个会话,那就是目标会话。如果有多个就报错。如果没有找到,就用当前会话。如果没有当前会话就用最近用的会话。
窗口 target-window,指定源窗口或目的窗口,格式为:
session:window
,同样有解析的顺序:- 指定的token 例如
tmux send-keys -t:{last} ls
- 窗口的序号
- 窗口的id,以
@
引用 - 窗口名称的精确匹配
- 窗口名称的前缀匹配,如果名称前指定了
=
那么就只接受精确匹配 - fnmatch
窗口的匹配支持的token如下:
1
2
3
4
5{start} ^ The lowest-numbered window
{end} $ The highest-numbered window
{last} ! The last (previously current) window
{next} + The next window by number
{previous} - The previous window by number- 指定的token 例如
窗格,查找顺序和窗口类似的,指定语法为
session:window.paneindx
窗格支持的token为:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16Token Meaning
{last} ! The last (previously active) pane
{next} + The next pane by number
{previous} - The previous pane by number
{top} The top pane
{bottom} The bottom pane
{left} The leftmost pane
{right} The rightmost pane
{top-left} The top-left pane
{top-right} The top-right pane
{bottom-left} The bottom-left pane
{bottom-right} The bottom-right pane
{up-of} The pane above the active pane
{down-of} The pane below the active pane
{left-of} The pane to the left of the active pane
{right-of} The pane to the right of the active pane其中
+
-
可以紧跟offset的数值来指定偏移量,例如select-window -t:+2
另外还有一些全局token,
{mouse}
=
表示,用来指定最近出现鼠标事件的对象{marked}
~
表示,用来指定被标记的窗格
会话,窗口,和窗格都有一个唯一的ID,会话使用 $
窗口使用 @
窗格使用 %
,这些ID在对象存在的生命周期内都不会改变。这些ID可以通过 session_id
window_id
pane_id
这些方式显示出来,也可以通过 display-message
list-sessions
list-windows
list-panes
这些命令来显示。通过快捷键 i
来出发display-message
可以看到对应的ID格式为: {session_id}- {pane_id}-{window_id}
在一些指令后面可以指定参数用来传递给shell,例如:new-window 'vi ~/.tmux.conf'
就会在打开一个新窗口的同时打开vim。
CLIENTS AND SESSIONS
主要介绍 客户端(client)和会话(session)的一些常用操作,这些操作可以通过list-command
来查看。客户端是用户的终端,必须关联到一个会话才能进行操作。客户端可以关联到同一个会话。 每个会话有一个或多个窗口。每个窗口可以关联到一个或多个会话,并由多个窗格组成。
客户端和会话支持的命令如下:
- attach-session
- detach-client
- has-session
- kill-server
- kill-session
- list-clients
- list-commands
- list-sessions
- lock-client
- lock-session
- new-session
- refresh-client
- rename-session
- server-access
- show-messages
- source-file
- start-server
- suspend-client
- switch-client
WINDOWS AND PANES
每个窗口都可以由一个或多个窗格组成,默认窗口和窗格都是从0
开始标号的。一个窗格可以存在多个模式:
- 复制模式,用于选定并复制窗格内的内容
- 查看模式,当执行的命令产生很多的输出时会进入该模式,例如:
list-keys
- 选择模式,用于在列表中选择条目,该模式可以通过以下命令进入:
choose-buffer
choose-client
choose-tree
复制模式支持两种按键绑定,通过 mode-keys
选项来配置 copy-mode
代指 emacs copy-mode-vi
代指 vi
,具体快捷键可以通过list-keys
来查看。
窗口和窗格主要支持以下的命令:
copy-mode
进入复制模式- select-layout 选定窗格布局
- break-pane
- capture-pane
- choose-client
- choose-tree
- customize-mode
- display-panes
- find-window
- join-pane
- kill-pane
- kill-window
- last-pane
- last-window
- link-window
- list-panes
- list-windows
- move-pane
- move-window
- new-window
- next-layout
- next-window
- pipe-pane
- previous-layout
- previous-window
- rename-window
- resize-pane
- resize-window
- respawn-pane
- respawn-window
- rotate-window
- select-layout
- select-pane
- select-window
- split-window
- swap-pane
- swap-window
- unlink-window
KEY BINDINGS
- bind-key 用来配置快捷键,
-r
表示这个按键可以重复 - list-keys 列出按键配置
- send-keys 向目标输入按键
- send-prefix 向目标发送前缀键
- unbind-key 取消绑定按键
OPTIONS
通过选项可以配置tmux 的外观和行为,包括:server options, session options, window options, pane options。可以通过 set-options
来配置也可以通过show-options -s|w|p
来查看。
HOOKS
钩子用于指定特定命令执行,或者状态改变之后的一些操作
MOUSE SUPPORT
鼠标支持相关
FORMATS
一些支持 -F 选项的命令的显示配置,可以在这里查到可以显示的内置变量,例如
#T
为pane的标题,#P
为pane的index ,#D
为pane的ID
#H
为hostname #S
为会话名 #F
为窗口标记 #I
为窗口index W
为窗口名字
STYLES
用于指定样式,包括:
fg bg align fill list range push-default, pop-default
NAMES AND TITLES
窗口和会话有名字,只有窗格有 标题
GLOBAL AND SESSION ENVIRONMENT
一些用于传递信息的变量
set-environment
show-environment
STATUS LINE
用于显示终端状态的状态栏,支持以下符号 * - # ! ~ M Z
BUFFERS
剪贴板的管理
MISCELLANEOUS
其他组件
EXIT MESSAGES
客户端段开时的提示
TERMINFO EXTENSIONS
一些扩展
CONTROL MODE
应用程序控制接口
ENVIRONMENT
与tmux有关的环境变量