tmux-配置
配置文件
当 tmux server 启动时, 其会运行 ~/.tmux.conf
文件中的内容.
若想在 tmux server 运行时加载一个文件中的 tmux commands, 可用 source-file
(简写为 source
) 命令, 如:
1 |
|
这些文件中, 每一个命令占据一行, 用 #
做为注释, 如:
1 |
|
注意在用 "
和 '
包裹字符串时需要注意, '
中的 \
会被当作普通字符, 即不被视为转义. 在 "
中环境变量和 ~
都会正常展开, 如:
1 |
|
是有效的.
Key bindings
主要用 bind-key
和 unbind-key
两个命令来设置. 每一个 tmux key binding 都属于一个 named key table. 默认有四个 key tables:
root
table 包含不需要先按下 prefix key 的 key bindingsprefix
table 包含需要先按下 prefix key 的 key bindingscopy-mode
table 包含在 copy mode 下的 emacs-style keyscopy-mode-vi
table 包含在 copy mode 下的 vi-style keys
可以用 list-keys
命令列出某一 table 下的所有 key bindings, 用 -T
flag 指定 table name, -N
flag 决定是否以 key help 的形式显示.
如列出所有 prefix
table 下的 key bindings, 这里是以 bind-key
设置的形式列出:
1 |
|
这里也可以查看单个 key binding, 如查看绑定在 C-b
上的操作:
1 |
|
以 key help 形式显示:
1 |
|
用 bind-key 设置 key bindings
在用 bind-key
设置时, 可以用 -T
指定设置在哪一个 table 下, 如果忽略 -T
flag 则默认放在 prefix
table 中. -n
是 -Troot
的简写形式.
如, 设置 prefix 键:
1 |
|
用 unbind-key 来解除一个 key binding
-T
和 -n
flags 与 bind-key
相同, 如移除绑定在 M-0
上的操作:
1 |
|
选项的类型
tmux 的配置中的 options 可分为:
- Server options, 作用于整个 server
- Session options, 作用于一个或全部 sessions
- Window options, 作用于一个或全部 windows
- Pane options, 作用于一个或全部 panes
- User options, 用户自定义的选项
对于 session 和 window 的 options 而言都有 global 和 local 之分. 当一个选项没有在 current session/window 中设置时, 则应用 global option. Pane options 和上述类似, 但其还会参考 window options.
查看 options
可以用 show-options
命令查看, 加上 -g
则会查看 global options. 用 -s
flag 查看 server options:
1 |
|
只用 -g
选项时显示 global session options:
1 |
|
用 -w
查看 window options, -wg
查看 global window options:
1 |
|
可以通过给出 option name 来单独查看一个 option 的设置:
1 |
|
更改 options
一个 option 可以用 set-option
(简写为 set
) 命令来设置 (也可以用于 unset), 其不需要 -s
, -w
等 flag 来区分一个 option 是属于 session 还是 window 之类的, tmux 会自己识别出. 只需要 -g
来表明是否为 global.
如关闭 status
选项:
1 |
|
若想取消一个 option 的设置 (即恢复默认设置), 则加上 -u
flag, 如:
1 |
|
option 的部分设置 Formats
这种 Formats 一般用于控制 text 的显示, 可以显示 tmux server, a session, window or pane 的 attributes.
具体语法为, 用 #{}
包裹 (注意得用引号包裹), 如 status-right
的默认设置为:
1 |
|
具体语法位于 github 中 formats 相关 wiki.
嵌入 shell 命令
可以用 #()
包裹来显示 shell 命令的输出, 如:
1 |
|
设置 colours and styles
有两个地方可以设置 style:
status-style
这个 option#[]
包裹的 option value (embedded style 语法)
一个 style 由多个用空格或 ,
分隔的 terms 组成, 常用的有:
default
, 使用默认颜色bg
, 设置 background colour, 如bg=red
fg
, 设置 foreground colour, 如fg=green
bright
orbold
,underscore
,reverse
,italics
, 这些都 appear alone 如bright,reverse
(也就是不设置值)
其他的 term 可以在 manual page 中查询.
一个示例如:
1 |
|
Embedded style
即用 #[]
包裹的部分, 如:
1 |
|
常用设置更改
更改 prefix key
Prefix key 通过 prefix
option 来设置, 之后绑定到 send-prefix
command 上, 若想改变 prefix key 为 C-a
, 如:
1 |
|