super-termux:跨平台的终端复用器(Terminal Multiplexer)
背景
你是否遇到过需要同时执行两个终端任务:
- 用 vim 之类的写代码,同时需要编译、运行。
- 跑一个需要持久化的程序(运行暴力、服务器),又需要做别的工作。
- 不同目录的两个程序运行,来回切换目录。
通常情况下,这比较简单,只需开两个终端即可。
但是,如果是特殊环境(ssh 或不便来回切换),且是没有后台运行工具(比如 linux 的 screen、tmux)的情况下,这十分棘手。
这时就可以使用这个项目,Link。
这是什么
这是一个跨平台的终端复用器(Terminal Multiplexer),支持 Windows / Linux / macOS,它可以帮你在一个终端中打开多个终端,还能在同一个标签里分屏:
优点:
- 支持鼠标驱动,不需要记快捷键。
- 历史记录保留。
- 极其轻量,TUI 界面,体积小巧,占用内存小,启动速度快。
- 模块化 C 架构,单文件可执行。
- 拥有类似 Windows Terminal 的界面,新手上手快。
- 内置多套配色主题(
github-dark/one-dark/nord/gruvbox-dark/dracula),有图形化设置页,键位、主题、菜单项都能改,配置文件热重载。 - 支持向子终端传递鼠标事件,
你可以尝试进行套娃。 - 支持 VT 序列,可以显示 24 位真彩色。
原理:
-
Windows:使用 ConPTY 作为后端(
CreatePseudoConsole+CreateProcessW)。 -
Linux / macOS:使用
forkpty创建伪终端,termios raw 模式读键盘。
使用
需要保证 Windows 版本为 Win10 1809+。
Linux / MacOS 无版本限制。
可执行文件运行
可以从 Github Release 上下载。
手动编译
参考仓库中的 README.md。
编译完后直接运行即可。
功能
可能会随着功能增多,导致没有同步,推荐优先前往 github 看,这里直接由 v2.0.3 的 Readme.md 复制而来。
快捷键
| 快捷键 | 功能 |
|---|---|
Ctrl+B : |
打开命令面板 (Command Palette) |
Ctrl+B c |
新建默认 pane |
Ctrl+B + |
新建 pane 菜单(选已配置项目 / 自定义命令行) |
Ctrl+B [ |
进入复制模式(方向键/hjkl 移动、Space/v 选区、Shift+方向 行选、Alt+方向 块选、b 切换行/块、Enter/Ctrl+C/y 复制、Esc 退出) |
Shift+点击两点 |
直接进入复制模式并选中两点之间(行选);Alt+点击两点 为矩形框选。Ctrl+C/Enter 复制并关闭,Esc 退出,其它键退出并把该键发给终端 |
Ctrl+B / |
搜索滚动历史(U/D 或 n/N 跳转上一个/下一个匹配,Esc 退出;右上角徽章上的 [U 上] [D 下] [×] 也可鼠标点) |
Ctrl+B s |
打开图形化设置页面 (termux.ini) |
Ctrl+B r |
热重载配置文件 (termux.ini) |
Ctrl+B ? / h |
打开 / 关闭帮助 |
Ctrl+B n / p |
下一个 / 上一个 pane |
Ctrl+B x |
关闭当前 panel |
Ctrl+B d |
退出 termux |
Ctrl+B t / Shift+t |
轮换标签颜色 |
Ctrl+B w |
打开「切换 panel」可视化面板(按编号或标题选择切换 pane;数字直跳已移除) |
Ctrl+B - / _ |
分屏:左右切分 / 上下切分(同一标签内多个终端同屏) |
Ctrl+B Tab / Shift+Tab |
分屏:切换到下一个 / 上一个窗格 |
Ctrl+B ↑/↓/←/→ |
分屏:切换到对应方向的相邻窗格 |
Ctrl+B Shift+方向 |
分屏:拖动分隔线调整窗格大小 |
Ctrl+B q |
分屏:关闭当前窗格(同标签只剩一个窗格时关闭整个标签页;可在设置里开启关闭二次确认) |
Ctrl+B z |
分屏:当前窗格全屏缩放 / 还原 |
上表是默认键位;前缀键与每个动作的按键都可以在
termux.ini的[keys]段里改,见下文。
鼠标操作
| 操作 | 功能 |
|---|---|
| 左键点击标签 | 切换 pane |
左键点击 × |
关闭该 pane |
| 右键点击标签 | 改颜色 / 改标题 |
| 中键点击标签 | 关闭该 pane |
| 鼠标左键拖拽 | 框选终端文字,松开自动复制到剪贴板 |
点击 [+] |
新建 pane(选已配置项目 / 自定义命令行) |
点击 [*] |
打开图形化设置页面 |
点击 termux |
打开 / 关闭帮助 |
| 滚轮 | 滚动历史 |
常见问题
Q:我的为什么渲染出现故障或按钮点击错位?
A: 你的终端需要使用等宽字体(如 Consolas、Fira Code)。
Q:为什么 Windows 运行提示 Failed! Need Win10 1809+ and enough memory?
A:你的 Windows 可能版本过低,或者内存不够导致无法加载。
开源协议
本项目基于 MIT 许可证开源。
结语
如果你发现了代码中的 bug,可以提交 issues。
如果你认为我的这个项目不错,请给我点一个 star,谢谢。