# --- # @author jianqun.me # @created 2024-11-18 # @modified 2025-06-30 # @permalink https://dl.jianqun.me/dotfiles/tmux/tmux.conf.txt # --- # --- # Server Options # --- set -g default-terminal tmux-256color # 设定 tmux 的默认终端 set -g escape-time 200 # 设定 tmux 等待转义序列完成的时间 (毫秒) set -g exit-empty on # 是否在没有活跃会话时自动退出服务端 set -g exit-unattached off # 是否在没有客户端连接时自动退出服务端 set -g focus-events on # 是否将焦点事件传递给应用程序 set -g set-clipboard on # 是否设置终端剪贴板 set -ga terminal-features 'xterm-256color:RGB' # 设定 tmux 的终端功能 set -ga terminal-overrides '*:Ss=\E[%p1%d q:Se=\E[ q' # 设定 tmux 的终端覆写 # --- # Session Options # --- set -g activity-action other # 设定在开启 monitor-activity 时监听的窗口 set -g base-index 1 # 设定窗口的起始编号 set -g bell-action any # 设定在开启 monitor-bell 时监听的窗口 set -g display-panes-active-colour cyan # 设定活跃窗格指示器的颜色 set -g display-panes-colour white # 设定非活跃窗格指示器的颜色 set -g display-panes-time 1000 # 设定窗格指示器的显示时长 (毫秒) set -g display-time 1000 # 设定状态行消息与其它屏幕指示器的显示时长 (毫秒) set -g history-limit 10000 # 设定回滚缓冲区的历史记录限制 (行) set -g menu-border-lines single # 设定菜单的边界线类型 set -g menu-border-style bg=white,fg=black # 设定菜单的边界样式 set -g menu-selected-style bg=red,fg=white # 设定菜单的选中样式 set -g menu-style bg=white,fg=black # 设定菜单的外观样式 set -g message-command-style bg=yellow,fg=black # 设定状态行消息样式 (命令模式) set -g message-style bg=red,fg=white # 设定状态行消息样式 set -g mouse on # 是否开启鼠标支持 set -g prefix C-_ # 设定 tmux 的第一个前缀键 set -g prefix2 M-z # 设定 tmux 的第二个前缀键 set -g renumber-windows on # 是否在关闭窗口时对其它窗口进行重新编号 set -g set-titles on # 是否将 set-titles-string 作为客户端窗口标题 set -g set-titles-string '[#h] #I:#W [#S]' # 设定客户端窗口标题样式 set -g silence-action other # 设定在开启 monitor-silence 时监听的窗口 set -g status on # 是否开启状态行 set -g status-interval 1 # 设定状态行的刷新间隔 (秒) set -g status-justify left # 设定状态行窗口列表的对齐方式 set -g status-keys emacs # 设定状态行的按键风格 (vi/emacs) set -g status-left '[#h] ' # 设定状态行左侧的内容样式 set -g status-left-length 40 # 设定状态行左侧的最大宽度 (列) set -g status-left-style none # 设定状态行左侧的外观样式 set -g status-position top # 设定状态行的位置 set -g status-right ' [%Y/%m/%d %H:%M:%S] [#S]' # 设定状态行右侧的内容样式 set -g status-right-length 40 # 设定状态行右侧的最大宽度 (列) set -g status-right-style none # 设定装同行右侧的外观样式 set -g status-style bg=white,fg=black # 设定状态行的外观样式 set -g visual-activity on # 是否使用状态行消息代替窗口活动响铃 set -g visual-bell off # 是否使用状态行消息代替窗口终端响铃 set -g visual-silence on # 是否使用状态行消息代替窗口静默响铃 # --- # Window Options # --- set -g automatic-rename on # 是否允许 tmux 自动重命名窗口标题 set -g clock-mode-colour cyan # 设定时钟模式的时间颜色 set -g clock-mode-style 24 # 设定时钟模式的时间样式 set -g copy-mode-match-style bg=cyan,fg=black # 设定在复制模式执行搜索时的查找文本样式 set -g copy-mode-mark-style bg=red,fg=white # 设定在复制模式执行搜索时的标记文本样式 set -g copy-mode-current-match-style bg=yellow,fg=black # 设定在复制模式执行搜索时的光标文本样式 set -g fill-character '' # 设定填充窗口外观的字符 set -g mode-keys vi # 设定复制模式的按键风格 (vi/emacs) set -g mode-style bg=yellow,fg=black # 设定复制模式的外观样式 set -g monitor-activity on # 是否开启监听窗口的活动状态 set -g monitor-bell on # 是否开启监听窗口的终端响铃 set -g monitor-silence 0 # 设定监听窗口静默状态的间隔 (秒) set -g pane-active-border-style bg=black,fg=cyan # 设定活跃窗格的边界样式 set -g pane-base-index 1 # 设定窗格的起始编号 set -g pane-border-indicators colour # 设定窗格的边界指示器 set -g pane-border-lines heavy # 设定窗格的边界线类型 set -g pane-border-status off # 是否开启窗格的边界状态行 set -g pane-border-style bg=black,fg=white # 设定非活跃窗格的边界样式 set -g popup-border-lines heavy # 设定弹出式窗口的边界线类型 set -g popup-border-style bg=black,fg=white # 设定弹出式窗口的边界样式 set -g popup-style bg=black,fg=white # 设定弹出式窗口的外观样式 set -g window-status-activity-style none # 设定状态行活动响铃窗口的外观样式 set -g window-status-bell-style none # 设定状态行终端响铃窗口的外观样式 set -g window-status-current-format '#I:#W#[fg=red]*' # 设定状态行活跃窗口的内容样式 set -g window-status-current-style none # 设定状态行活跃窗口的外观样式 set -g window-status-format '#I:#W#{?window_bell_flag,#[fg=blue]~,#{?window_activity_flag,\ #[fg=green]+,#{?window_silence_flag,#[fg=yellow]-, }}}' # 设定状态行非活跃窗口的内容样式 set -g window-status-last-style none # 设定状态行先前活跃窗口的外观样式 set -g window-status-separator ' ' # 设定状态行窗口列表的分隔符 set -g window-status-style none # 设定状态行非活跃窗口的外观样式 set -g wrap-search on # 是否在复制模式执行搜索时进行循环查找 # --- # Pane Options # --- set -g allow-passthrough off # 是否允许窗格中的程序使用终端转义序列 set -g allow-rename off # 是否允许窗格中的程序重命名窗口标题 set -g alternate-screen on # 是否允许窗格中的程序使用终端备用屏幕功能 set -g cursor-colour terminal # 设定光标颜色 set -g cursor-style default # 设定光标样式 set -g remain-on-exit off # 是否在非交互式后台程序退出时保留窗格 set -g scroll-on-clear on # 是否在执行清屏指令时将屏幕内容保留在回滚缓冲区 set -g synchronize-panes off # 是否开启多窗格同步输入 set -g window-active-style bg=black,fg=white # 设定活跃窗格的外观样式 set -g window-style bg=black,fg=white # 设定非活跃窗格的外观样式 # --- # Key Bindings # --- unbind-key -T prefix C-b bind-key -T prefix C-_ send-prefix bind-key -T prefix M-z send-prefix -2 unbind-key -T root MouseDrag1Pane unbind-key -T root WheelUpStatus unbind-key -T root WheelDownStatus bind-key -T root WheelUpPane if-shell -F '#{alternate_on}' { send-keys Up } \ { if-shell -F '#{||:#{pane_in_mode},#{mouse_any_flag}}' { send-keys -M } { copy-mode -e } } bind-key -T root WheelDownPane if-shell -F '#{alternate_on}' { send-keys Down } unbind-key -T copy-mode-vi MouseDragEnd1Pane bind-key -T copy-mode-vi WheelUpPane select-pane \; send-keys -X -N 3 scroll-up bind-key -T copy-mode-vi WheelDownPane select-pane \; send-keys -X -N 3 scroll-down unbind-key -T copy-mode MouseDragEnd1Pane bind-key -T copy-mode WheelUpPane select-pane \; send-keys -X -N 3 scroll-up bind-key -T copy-mode WheelDownPane select-pane \; send-keys -X -N 3 scroll-down