Skip to content

tmux ​

tmux 可以把一个终端分成多个窗格,比如左边跑 AI 助手、右边开 shell 或编辑器。在容器里这样启动:

bash
tmux

快捷键 ​

前缀键是 tmux 默认的 Ctrl+b:先按 Ctrl+b,两个键都松开,再按下一个键。

按键作用
Ctrl+b 然后 |左右分屏(新窗格在右边)
Ctrl+b 然后 -上下分屏(新窗格在下面)
Ctrl+b 然后 c新建窗口
Ctrl+b 然后方向键在窗格之间切换
Ctrl+b 然后 [进入复制模式(用键盘滚动,按 q 退出)
Ctrl+b 然后 d暂时离开(detach),会话继续在后台运行,tmux attach 可以回来

新窗格和新窗口都会在当前目录打开,窗口和窗格的编号从 1 开始。

后台窗口有新输出时,状态栏会高亮提示,同时跑多个 AI 助手时很方便。

滚动和复制 ​

已开启鼠标支持,所以一切都按窗格进行:

  • 滚动:滚轮滚动的是鼠标所在窗格的历史记录(最多 5 万行)。按 q 或滚回最底部即可返回。
  • 复制:用鼠标拖选,松开鼠标的那一刻就已经复制好了,选区会保留在屏幕上。不需要再按 Cmd+C / Ctrl+Shift+C,按了反而复制不到东西。
  • 键盘复制:在复制模式里,按 v 开始选择,按 y 复制(vi 键位)。

Claude Code、Neovim 这类自己处理鼠标的程序,在它们自己的窗格里仍然由它们接收滚轮和拖选。

宿主机终端设置 ​

复制的内容通过 OSC 52 控制序列,从 tmux 传到你电脑的剪贴板,需要你电脑上的终端允许:

终端设置
Ghostty不用设置,默认允许写剪贴板
iTerm2Settings → General → Selection → 打开 Applications in terminal may access clipboard
其他终端如果支持,打开 OSC 52 或"允许程序写入剪贴板"之类的选项

使用终端自己的选择 ​

想绕过 tmux、用终端本身的方式选择文字,拖选时按住修饰键:

  • Ghostty:Shift
  • iTerm2:Option

这种选择会按整行选中、跨越所有窗格,用终端平时的快捷键复制。