概念

tmux的基本概念包括:

  • 会话 session
  • 窗口 window
  • 窗格 pane

会话管理

会话相关基本命令

新建会话

新建一个指定名称的会话:

1
$ tmux new -s <session-name>

分离会话

在 Tmux 窗口中,按下Ctrl+b d或者输入tmux detach命令,就会将当前会话与窗口分离,退出当前 Tmux 窗口,但是会话和里面的进程仍然在后台运行。

tmux ls命令可以查看当前所有的 Tmux 会话。

接入会话

tmux attach命令用于重新接入某个已存在的会话。

1
2
3
4
5
# 使用会话编号
$ tmux attach -t 0

# 使用会话名称
$ tmux attach -t <session-name>

杀死会话

tmux kill-session命令用于杀死某个会话。

1
2
3
4
5
# 使用会话编号
$ tmux kill-session -t 0

# 使用会话名称
$ tmux kill-session -t <session-name>

切换会话

tmux switch命令用于切换会话。

1
2
3
4
5
# 使用会话编号
$ tmux switch -t 0

# 使用会话名称
$ tmux switch -t <session-name>

重命名会话

tmux rename-session命令用于重命名会话。

1
$ tmux rename-session -t 0 <new-name>

上面命令将0号会话重命名。

会话快捷键

  • Ctrl+b d:分离当前会话。
  • Ctrl+b s:列出所有会话。
  • Ctrl+b $:重命名当前会话。

窗格操作

Tmux 可以将窗口分成多个窗格(pane),每个窗格运行不同的命令。以下命令都是在 Tmux 窗口中执行。

窗格基本命令

划分窗格

1
2
3
4
5
# 划分上下两个窗格
$ tmux split-window

# 划分左右两个窗格
$ tmux split-window -h

移动光标

tmux select-pane命令用来移动光标位置。

1
2
3
4
5
6
7
8
9
10
11
# 光标切换到上方窗格
$ tmux select-pane -U

# 光标切换到下方窗格
$ tmux select-pane -D

# 光标切换到左边窗格
$ tmux select-pane -L

# 光标切换到右边窗格
$ tmux select-pane -R

交换窗格位置

tmux swap-pane命令用来交换窗格位置。

1
2
3
4
5
# 当前窗格上移
$ tmux swap-pane -U

# 当前窗格下移
$ tmux swap-pane -D

窗格快捷键

  • Ctrl+b %:划分左右两个窗格。
  • Ctrl+b ":划分上下两个窗格。
  • Ctrl+b <arrow key>:光标切换到其他窗格。<arrow key>是指向要切换到的窗格的方向键,比如切换到下方窗格,就按方向键
  • Ctrl+b ;:光标切换到上一个窗格。
  • Ctrl+b o:光标切换到下一个窗格。
  • Ctrl+b {:当前窗格与上一个窗格交换位置。
  • Ctrl+b }:当前窗格与下一个窗格交换位置。
  • Ctrl+b Ctrl+o:所有窗格向前移动一个位置,第一个窗格变成最后一个窗格。
  • Ctrl+b Alt+o:所有窗格向后移动一个位置,最后一个窗格变成第一个窗格。
  • Ctrl+b x:关闭当前窗格。
  • Ctrl+b !:将当前窗格拆分为一个独立窗口。
  • Ctrl+b z:当前窗格全屏显示,再使用一次会变回原来大小。
  • Ctrl+b Ctrl+<arrow key>:按箭头方向调整窗格大小。
  • Ctrl+b q:显示窗格编号。

窗口管理

新建窗口

tmux new-window命令用来创建新窗口。

1
2
3
4
$ tmux new-window

# 新建一个指定名称的窗口
$ tmux new-window -n <window-name>

切换窗口

tmux select-window命令用来切换窗口。

1
2
3
4
5
# 切换到指定编号的窗口
$ tmux select-window -t <window-number>

# 切换到指定名称的窗口
$ tmux select-window -t <window-name

重命名窗口

tmux rename-window命令用于为当前窗口起名(或重命名)。

1
$ tmux rename-window <new-name>

窗口快捷键

  • Ctrl+b c:创建一个新窗口,状态栏会显示多个窗口的信息。
  • Ctrl+b p:切换到上一个窗口(按照状态栏上的顺序)。
  • Ctrl+b n:切换到下一个窗口。
  • Ctrl+b <number>:切换到指定编号的窗口,其中的<number>是状态栏上的窗口编号。
  • Ctrl+b w:从列表中选择窗口。
  • Ctrl+b ,:窗口重命名。

其他命令

1
2
3
4
5
6
7
8
9
10
11
# 列出所有快捷键,及其对应的 Tmux 命令
$ tmux list-keys

# 列出所有 Tmux 命令及其参数
$ tmux list-commands

# 列出当前所有 Tmux 会话的信息
$ tmux info

# 重新加载当前的 Tmux 配置
$ tmux source-file ~/.tmux.conf

tmux配置

https://www.bilibili.com/video/BV12y421h7rH/?spm_id_from=333.337.search-card.all.click

  1. 下载插件管理器tpm(https://github.com/tmux-plugins/tpm)

    1
    git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
  1. 创建tmux配置文件(~/.tmux.conf),并将下面内容添加在配置文件底部

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # List of plugins
    set -g @plugin 'tmux-plugins/tpm'
    set -g @plugin 'tmux-plugins/tmux-sensible'

    # Other examples:
    # set -g @plugin 'github_username/plugin_name'
    # set -g @plugin 'github_username/plugin_name#branch'
    # set -g @plugin 'git@github.com:user/plugin'
    # set -g @plugin 'git@bitbucket.com:user/plugin'

    # Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
    run '~/.tmux/plugins/tpm/tpm'
  1. 可以在配置文件中添加

    1
    set -g default-terminal 'tmux-256color'

    来设置颜色,并按下prefix(tmux中默认为Ctrl+b)+:,并输入

    1
    :source ~/.tmux.conf

    重载配置文件

  2. 安装catppuccin插件:在配置文件中添加下面内容

1
2
set -g @plugin 'catppuccin/tmux'
set -g @catppuccin_flavour 'mocha'

然后按下快捷键:prefixI(注意是大写I)安装插件

  1. 窗口编号设置

    1
    2
    3
    set -g base-index 1            # 起始编号设置为1
    set -g pane-base-index 1 # 起始编号设置为1
    set -g renumber-windows on # 自动调整编号
  1. 修改默认快捷键前缀prefix(默认为Ctrl+b),修改为Ctrl+Space(空格)

    1
    2
    unbind C-b
    set -g prefix C-Space
  2. 激活鼠标控制和缓存区vim键位

    1
    2
    3
    4
    set-window-option -g mode-keys vi
    bind-key -T copy-mode-vi v send-keys -X begin-selection
    bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle
    bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel

Links