Skip to content

Tmux 配置

快捷键 & 速查表

  • 启动新会话:
    tmux [new -s 会话名 -n 窗口名]
    
  • 恢复会话:
    tmux at [-t 会话名]
    
  • 列出所有会话:
    tmux ls
    
  • 关闭会话:
    tmux kill-session -t 会话名
    
  • 关闭所有会话:
    tmux ls | grep : | cut -d. -f1 | awk '{print substr($1, 0, length($1)-1)}' | xargs kill
    

在 Tmux 中,按下 Tmux 前缀 ctrl+b,然后: - 会话

:new<回车>   启动新会话
s           列出所有会话
$           重命名当前会话
- 窗口 (标签页)
c  创建新窗口
w  列出所有窗口
n  后一个窗口
p  前一个窗口
f  查找窗口
,  重命名当前窗口
&  关闭当前窗口

  • 调整窗口排序

    swap-window -s 3 -t 1  交换 3 号和 1 号窗口
    swap-window -t 1       交换当前和 1 号窗口
    move-window -t 1       移动当前窗口到 1 号
    
    - 窗格(分割窗口)
    %   垂直分割
    "   水平分割
    o   交换窗格
    x   关闭窗格
    ⍽   左边这个符号代表空格键 - 切换布局
    q   显示每个窗格是第几个,当数字出现的时候按数字几就选中第几个窗格
    {   与上一个窗格交换位置
    }   与下一个窗格交换位置
    z   切换窗格最大化/最小化
    
    - 重调窗格的尺寸
    PREFIX : resize-pane -D 当前窗格向下扩大 1 格  
    PREFIX : resize-pane -U 当前窗格向上扩大 1 格  
    PREFIX : resize-pane -L 当前窗格向左扩大 1 格  
    PREFIX : resize-pane -R 当前窗格向右扩大 1 格  
    PREFIX : resize-pane -D 20 当前窗格向下扩大 20 格  
    PREFIX : resize-pane -t 2 -L 20 编号为 2 的窗格向左扩大 20 格
    
    - 杂项:
    d  退出 tmux(tmux 仍在后台运行)
    t  窗口中央显示一个数字时钟
    ?  列出所有快捷键
    :  命令提示符
    

安装插件

  1. 安装tpm
    git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
    
  2. 刷新tmux配置文件
    tmux source ~/.tmux.conf
    
  3. 安装插件
    bash ~/.tmux/plugins/tpm/bin/install_plugins
    

Tips

如果在配置了256色后,发现在tmux中运行的程序(如vim)依然没有256色,那么使用tmux -2命令启动,强制使用256色。
如果系统是gbk编码,但是SSH终端却使用utf-8编码连接,那么在启动时需要添加-u选项,强制使用utf-8,不然会出现乱码、花屏。
可以在.bash_aliases中添加alias tmux="tmux -2 -u"


配置文件

参考配置文件(~/.tmux.conf):

# -----------------------------------------------------------------------------  
# Tmux 基本配置 - 要求 Tmux >= 2.3  
# 如果不想使用插件,只需要将此节的内容写入 ~/.tmux.conf 即可  
# -----------------------------------------------------------------------------
# C-b 和 VIM 冲突,修改 Prefix 组合键为 Control-Z,按键距离近  
set -g prefix C-z

unbind C-b

set -g base-index 1 # 窗口编号从 1 开始计数

set -g @scroll-speed-num-lines-per-scroll 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)

set -g set-clipboard on

set -g pane-border-style fg=gray

set -g pane-active-border-style fg=green

set -g pane-active-border-fg green

set -g pane-border-fg gray


# -----------------------------------------------------------------------------  
# 使用插件 - via tpm  
# 1. 执行 git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

# 2.tmux source ~/.tmux.conf

# 3. 执行 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-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @plugin 'tmux-plugins/tmux-sensible'  
set -g @plugin 'tmux-plugins/tmux-yank'  
set -g @plugin 'tmux-plugins/tpm'

set -g @plugin 'nhdaly/tmux-better-mouse-mode'

# 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'

# 1. [默认]每隔15分钟自动保存,当然你可以连按两次<prefix>键手动保存
# 2. [需要设置]通电后自动打开tmux
# 3. 开启tmux后自动恢复上一个保存的环境
set -g @continuum-restore 'on'
# 4.保存终端里的内容
set -g @resurrect-capture-pane-contents 'on'
# 5.for vim
set -g @resurrect-strategy-vim 'session'
# 6.for neovim
set -g @resurrect-strategy-nvim 'session'

# 初始化 TPM 插件管理器 (放在配置文件的最后)

bind r source-file ~/.tmux.conf \; display-message "Config reloaded.."

set -g terminal-overrides 'xterm*:smcup@:rmcup@'

run '~/.tmux/plugins/tpm/tpm'

# -----------------------------------------------------------------------------  
# 结束  
# -----------------------------------------------------------------------------