Tmux 状态栏配置 & 基本配置
#
tmux 2.3 及以上
tmux 启动后,会调用 ~/.tmux.conf
文件,此文件包含了 tmux 命令的一系列配置,如需要配置,都需要修改此文件。
更改 文件后,需要在 tmux 中执行相关命令,以刷新配置
1
2
3
4
5
|
# c+b 之后,输入 :
:source ~/.tmux.conf
# 成功之后左下角能看到
tmux reload ok
|
一、状态栏
#
Tmux 用户打交道最多的还是状态栏,一个好的状态栏配置,能改善不少操作体验,以下是状态栏的一个示例:
1.1 样式
#
1
2
3
4
5
6
7
8
9
|
# 右下角类似效果:21:58:48 12-12
set -g status-right "%H:%M:%S %d-%b"
# 设置整个状态栏背景颜色 bg(背景色) fg(前景色)
set -g status-style "bg=#882244"
# 分别设置状态栏左右颜色
set -g status-left "bg=#3a3a3a"
set -g status-left "fg=#bcbcbc"
|
1.2 窗口列表样式(window list)
#
1
2
3
4
|
# 会话计数:从 1 开始(Setting base-index assures newly created windows start at 1 and count upwards)
set -g base-index 1
# 窗口计数:从 1 开始编号,而不是从 0 开始
set -g pane-base-index 1
|
1.3 状态栏交互行为
#
1
2
3
4
5
6
7
8
9
10
|
set -g status-interval 1 # 状态栏刷新时间(右下角秒针会跳动)
set -g status-justify left # 状态栏窗口列表(window list)左对齐
set -g visual-activity on # 启用活动警告
set -wg monitor-activity on # 非当前窗口有内容更新时在状态栏通知
set -g message-style "bg=#202529, fg=#91A8BA" # 指定消息通知的前景、后景色
set -wg window-status-current-format " #I:#W#F " # 状态栏当前窗口名称格式(#I:序号,#w:窗口名 称,#F:间隔符)
set -wg window-status-current-style "fg=#d7fcaf,bg=#60875f" # 状态栏当前窗口名称的样式
set -wg window-status-separator "" # 状态栏窗口名称之间的间隔
|
二、鼠标、交互
#
2.1 开启鼠标
#
1
2
|
# 鼠标支持 - 设置为 on 来启用鼠标(与 2.1 之前的版本有区别,请自行查阅 man page)
* set -g mouse on
|
2.2 命令历史数量、时间限制
#
1
2
3
4
5
|
# 命令回滚/历史数量限制
set -g history-limit 20480
set -sg escape-time 0
set -g display-time 1500
set -g remain-on-exit off
|
2.3 Vim 风格的快捷键实现窗格间移动
#
1
2
3
4
|
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
|
三、其他
#
3.1 编码
#
1
2
3
4
5
6
|
# 设置默认终端模式为 256color
set -g default-terminal "screen-256color"
# 启用 UTF-8 编码
setw -g utf8 on
set -g status-utf8 on
|
1
2
3
4
|
# 最大化/恢复窗格
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
|
3.2 tmux 内容复制(依赖插件)
#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# 更改复制模式的默认行为为熟悉的vi风格
# tmux中复制模式通常使用复制模式的步骤如下:
# 1. 输入 <[> 进入复制模式
# 2. 按下 <空格键> 开始复制,移动光标选择复制区域
# 3. 按下 <回车键> 复制选中文本并退出复制模式
# 4. 按下 <]> 粘贴文本
# 开启vi风格后,支持vi的C-d、C-u、hjkl等快捷键
setw -g mode-keys vi
# 存在于 tmux 进程中的 buffer 缓存,剪贴可以在会话间共享,但无法与系统粘贴板直接共享
# 我们可以使用一个包装程序reattach-to-user-namespace来重新连接到合适的命名空间,然后执行访问用户级命名空间的粘贴板服务
# 加载复制插件
# 1. 将命令行文本复制到剪贴板 <prefix+y>
# 2. 将当前面板的工作目录复制到剪贴板 <prefix+Y>
set -g @plugin 'tmux-plugins/tmux-yank'
# 配置开启剪贴板功能
set -g set-clipboard on
# set-option -g default-command "reattach-to-user-namespace -l $SHELL"
|
四、插件及插件配置
#
五、参考配置文件(~/.tmux.conf)
#
精简后的配置,请自取。tmux 下记得重置配置文件 :source-file ~/.tmux.conf
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
|
# -----------------------------------------------------------------------------
# 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'
# -----------------------------------------------------------------------------
# 结束
# -----------------------------------------------------------------------------
|
reference:
-
the config file
-
tmux plugins
-
tmux 插件拓展
-
tao of tmux