Tmux 使用笔记

Tmux 是一个用于在终端窗口中运行多个终端会话的工具,即终端复用软件(terminal multiplexer)。

在 Tmux 中可以根据不同的工作任务创建不同的会话,每个会话又可以创建多个窗口来完成不同的工作,每个窗口又可以分割成很多小窗口。这些功能都是非常实用的。

在 Mac OS 中安装:

$ brew install tmux

开启 oh-my-zsh tmux 插件:

1
2
3
plugins=(
tmux
)

开启后提供以下快捷命令:

  1. ta <session-name>:接入某个已存在的会话
  2. ts <session-name>:新建一个指定名称的会话
  3. tl:查看当前所有的 Tmux 会话
  4. tksv:用于杀死全部会话
  5. tkss <session-name>:用于杀死某个会话

最简操作流程

  1. 新建会话 tmux new -s my_session。
    • 安装 zsh tmux 插件后可使用 ts my_session
  2. 在 Tmux 窗口运行所需的程序。
  3. 按下快捷键 Ctrl+b d 将会话分离。
  4. 下次使用时,重新连接到会话 tmux attach-session -t my_session
    • 安装 zsh tmux 插件后可使用 ta my_session

常用快捷键:

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
# session
Ctrl+b d:分离当前会话。
Ctrl+b s:列出所有会话(切换回话)。
Ctrl+b $:重命名当前会话。

# pane
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:显示窗格编号。

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

解决滚轮无效的问题

新建 ~/.tmux.conf 配置文件后写入如下内容:

1
2
3
4
set-option -g mouse on

bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'select-pane -t=; copy-mode -e; send-keys -M'"
bind -n WheelDownPane select-pane -t= \; send-keys -M

需杀掉全部会话(tksv),重新启动新的会话后以上配置才能生效。

修改历史记录上限

历史记录默认上限为 2000 行,可通过在配置文件中加入如下配置来进行修改:

set-option -g history-limit 10000

参考链接

http://www.ruanyifeng.com/blog/2019/10/tmux.html