说明:
我复制了很多的 oh-my-tmux 相关配置,并加入了自己的配置。
为了使用插件,你需要先运行以下命令:
# 安装 tmp 插件
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
tmp 插件是一个插件管理器,可以方便地安装、升级和卸载其他插件。安装好插件管理器后,只需编辑 ~/.tmux.conf 文件并添加以下内容即可使用。
# -- 通用 -------------------------------------------------------------------
set -g default-terminal "screen-256color"
setw -g xterm-keys on
set -s escape-time 10 # 设置按键序列的逃逸时间为 10 毫秒
set -sg repeat-time 600 # 设置按键重复超时时间为 600 毫秒,即按住一个键超过 600 毫秒后开始重复输入。
set -s focus-events on # 开启焦点事件,以便在窗格之间切换时正确传递焦点。
#set -g prefix2 C-a # 设置第二个前缀键为 C-a,使其与 GNU Screen 兼容。
#bind C-a send-prefix -2 # 绑定 C-a 键为发送前缀键(即发送第二个前缀键)。
set -q -g status-utf8 on # 设置状态栏为 UTF-8 编码 (tmux < 2.2)
setw -q -g utf8 on # 设置 tmux 内部使用的 UTF-8 编码
set -g history-limit 5000 # 设置命令历史记录的限制为 5000 条
# 绑定 e 键为修改并重载 tmux.conf
bind e new-window -n "$HOME/.tmux.conf" sh -c '${EDITOR:-vim} "$HOME/.tmux.conf" && "tmux" source "$HOME/.tmux.conf" \; display "$HOME/.tmux.conf sourced"'
# 绑定 r 键为重载 tmux.conf
bind r run '"tmux" source $HOME/.tmux.conf' \; display "$HOME/.tmux.conf sourced"
# -- display -------------------------------------------------------------------
set -g base-index 1 # 将窗口编号的起始值设置为 1
setw -g pane-base-index 1 # 将窗格编号的起始值设置为 1
setw -g automatic-rename on # 启用自动重命名窗口功能,使窗口名称反映当前程序的名称。
set -g renumber-windows on # 在关闭窗口时重新编号其他窗口,以保持窗口编号的连续性
set -g set-titles on # 设置终端标题,使其显示当前 tmux 的会话和窗口信息。
set -g display-panes-time 1500 # 设置窗格指示器显示的时间-prefix q
set -g display-time 1000 # 设置状态消息显示的时间
set -g status-interval 10 # 每隔 10 秒重新绘制状态栏,以更新状态信息。
# 绑定 C-l 键为清除屏幕和历史记录的操作:
bind -n C-l send-keys C-l \; run 'sleep 0.2' \; clear-history
# 开启活动监测功能,当有活动(输入或输出)发生时,窗口会显示活动指示器。
set -g monitor-activity on
# 关闭可视化活动指示器,即窗口不会以可见方式显示活动指示器。
set -g visual-activity off
# -- navigation ----------------------------------------------------------------
# 将 C-c 键绑定为创建新的 tmux 会话。
bind C-c new-session
# 将 C-f 键绑定为打开命令提示符,可以输入会话名称来查找并切换到指定的会话。
bind C-f command-prompt -p find-session 'switch-client -t %%'
# 将 BTab 键(即 Shift+Tab 键)绑定为切换到上一个会话。
bind BTab switch-client -l
# 将 - 键绑定为在当前窗口中水平分割窗格。
bind - split-window -v
# 将 _ 键绑定为在当前窗口中垂直分割窗格。
bind _ split-window -h
# 绑定 hjkl 为切换窗格,默认可以用箭头的上下左右
bind -r h select-pane -L
bind -r j select-pane -D
bind -r k select-pane -U
bind -r l select-pane -R
bind > swap-pane -D # 将 > 键绑定为将当前窗格与下一个窗格进行交换。
bind < swap-pane -U # 将 < 键绑定为将当前窗格与上一个窗格进行交换。
# 将 + 键绑定为最大化当前窗格的命令。
bind + run "cut -c3- '#{TMUX_CONF}' | sh -s _maximize_pane '#{session_name}' '#D'"
# 将 HJKL 绑定为调整当前窗格大小两个单位
bind -r H resize-pane -L 2
bind -r J resize-pane -D 2
bind -r K resize-pane -U 2
bind -r L resize-pane -R 2
# window navigation
unbind n
unbind p
bind -r C-h previous-window # 将 Ctrl+h 键绑定为选择上一个窗口。
bind -r C-l next-window # 将 Ctrl+l 键绑定为选择下一个窗口。
bind Tab last-window # 将 Tab 键绑定为切换到上一个活动的窗口。
# 将 m 键绑定为切换鼠标模式的命令
bind m run "cut -c3- '#{TMUX_CONF}' | sh -s _toggle_mouse"
# -- 窗口及状态栏 ----------------------------------------------------------------
# default statusbar colors
#set -g status-bg black
#set-option -g status-left '#[bg=black,fg=green][#[fg=cyan]#S#[fg=green]]'
#setw -g window-status-format '#[fg=brightblue] #I #W '
#setw -g window-status-current-format '#[fg=magenta,bold] #I #W:#F'
#setw -g window-status-activity-style bg=black
#setw -g window-status-bell-style bg=black
# -- 其他 ----------------------------------------------------------------
set-option -g prefix M-q # 设置前缀键为 M-q(Alt-q)
bind-key M-q send-prefix # 绑定 M-q 键为发送前缀键
# 将回车键绑定为在当前窗口中水平分割窗格。
bind-key Enter split-window -v
# 将 | 键绑定为在当前窗口中垂直分割窗格。
bind-key | split-window -h
# tmux2.1 之后启用鼠标支持
#set-option -g mouse on
# tmux2.1 之前
#set -g mouse-resize-pane on #鼠标调整窗格
#set -g mouse-select-pane on #鼠标选择窗格
#set -g mouse-select-window on #拷贝模式鼠标选择文本
#set -g mode-mouse on #鼠标支持开关
# 设置关闭当前窗格为 esc 键
bind-key Escape confirm-before -p "kill-pane? (y/n)" kill-pane
# 绑定 Alt-m 删除其他会话
bind-key -n M-m run-shell "rm -rf ~/.local/share/tmux/resurrect; tmux list-sessions | grep -v 'attached' | cut -d ':' -f 1 | xargs -I {} tmux kill-session -t {}; tmux send-keys ls Enter"
# -- 插件----------------------------------------------------------------
# 插件地址:https://github.com/tmux-plugins/list
set -g @plugin 'tmux-plugins/tpm' # 安装 shift+i、升级 shift+u、卸载 Alt+u
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-resurrect' # 可以保存和恢复会话
set -g @plugin 'tmux-plugins/tmux-continuum' # 自动保存和恢复会话
set -g @plugin 'tmux-plugins/tmux-sidebar' # 可以使用 prefix tab 查看目录树
set -g @plugin 'dracula/tmux'
#set -g @plugin 'erikw/tmux-powerline'
# dracula 主题配置:https://draculatheme.com/tmux
# 需要使用的 dracula 插件
set -g @dracula-plugins "time cpu-usage ram-usage"
# 颜色配置
set -g @dracula-time-colors "green dark_gray"
set -g @dracula-cpu-usage-colors "pink dark_gray"
set -g @dracula-ram-usage-colors "cyan dark_gray"
# 状态栏配置
set -g @dracula-show-powerline true
# 设置左侧 icon,可以为 `session`, `smiley`, `window` 或者其他符号,默认为 smiley
set -g @dracula-show-left-icon session
# 设置时间格式
set -g @dracula-time-format "%F %R"
# 配置分隔符,不需要配置 zsh 即可实现箭头样式,但是需要设置为.tmux.conf 文件内容需要设置为 utf-8
#set -g @dracula-show-left-sep
#set -g @dracula-show-right-sep
set -g @dracula-show-left-sep
set -g @dracula-show-right-sep
# 开启自动保存会话,文件在 ~/.local/share/tmux/resurrect
set -g @continuum-restore 'on'
# 修改自动保存间隔,如果改成 0 则停止自动保存
set -g @continuum-save-interval '15'
# 初始化 tmux 插件管理器,必须放最下面一行
run -b '~/.tmux/plugins/tpm/tpm'
添加以后,执行如下命令重载配置:
tmux source ~/.tmux.conf
转载请注明:汇站网 » 分享我的 tmux 配置文件