终端
DR-Terminal 自带一个用 Kotlin 从零编写的 VT100/xterm 模拟器 — 没有 WebView。它支持 xterm-256color、备用缓冲区(vim/less/nano)、OSC 52 剪贴板、焦点事件以及鼠标跟踪(mc、htop)。
键盘与快捷键
| 快捷键 | 操作 |
|---|---|
| Ctrl+C — 当选中文本时 | 将所选内容复制到剪贴板。未选中时,正常的 SIGINT 会传达到远程进程。 |
| Enter — 当选中文本时 | 备用复制快捷键(在没有 Ctrl 的键盘上很方便)。 |
| 右键 / 复制菜单 | 选择后的上下文菜单 — 始终可用。 |
| Ctrl+V | 粘贴。多行剪贴板内容会打开一个多行粘贴确认对话框。 |
| Shift+Insert | 粘贴 — 经典的 X11/Windows 肌肉记忆。单独的 Insert 仍会传达到 shell。 |
| Shift+Delete | 复制所选内容并清除选区(剪切风格)。 |
| Ctrl+F | 打开查找栏(参见 在输出中查找)。shell 完全看不到该按键。 |
| Ctrl+Shift+S | 打开命令片段选择器(参见 命令片段)。单独的 Ctrl+S 仍会传达到 shell。 |
| 快捷键栏 | esc、ctrl、tab、方向键、常用 shell 符号、snip 键和 ⌨ 切换键 — 在移动端很有用。功能键和导航键位于 DevOps 键盘的 fn 层以及可选的 F 键行上。 |
| 字号 | 终端菜单中的 A- / A+ 步进器;范围 8–32 pt。 |
在 macOS 上,上表中列出 Ctrl 的地方都可以使用 Cmd:Cmd+C、Cmd+V、Cmd+F 和 Cmd+Shift+S 的行为与对应的 Ctrl 组合相同。
DevOps 键盘(Android 和 iOS)
系统键盘在终端里处处添乱:自动纠错会破坏 sudo -rf,shell 符号藏在两层之外,非拉丁布局往往根本没有 ASCII。DR-Terminal 自带始终-ASCII 的 DevOps 键盘,由应用自行绘制,按键直接送入终端 — 系统输入法完全看不到它们。
- 竖屏 — 屏幕底部的经典停靠键盘。
- 横屏 — 分体模式:左右两侧各有一个拇指大小的按键组,以半透明玻璃效果绘制在终端*之上*,整屏宽度仍然显示你的会话。
层:小写字母、大写字母(Shift)、数字、shell 符号(| ~ $ & ' " \ …`)以及 fn/nav 层(F1–F12、方向键、Home/End、PgUp/PgDn)。Ctrl/Alt/Shift 为粘滞键:单击对下一个按键生效,双击锁定。长按 ⌫、方向键或空格可重复输入;角上带小标记的按键长按可输入替代字符。
- 顶部的拖柄(胶囊) 在 FULL ↔ MINI 之间切换 — MINI 只保留精华(Esc、Tab、Ctrl、方向键、⌫、↵),适合 htop/看日志。横屏记住自己的状态,默认以 MINI 启动。
- 拖动拖柄移动按键组,会吸附到最近的边缘。把一组放到另一组上可合并为一个浮动键盘;分体胶囊再把它们分开。
- 在按键上向下滑动隐藏键盘;浮动的 ⌨ 按钮把它找回来。需要变音符号或表情时,⌨ 键切换到系统键盘。
设置 → 键盘(移动端):默认键盘 — Auto 在系统语言为非拉丁语系(阿拉伯语、希伯来语、中日韩…)时选择 DevOps 键盘,否则用系统输入法;布局 — Auto/QWERTY/QWERTZ/AZERTY;*不透明度*和*按键大小*滑块;显示 F 键 — 在键盘上方始终可见的 F1–F10 行,便于 mc/htop 工作流。所有键盘偏好都会随手机或平板导出的加密配置备份一起迁移。
选择、复制、粘贴
桌面端:用鼠标拖动进行选择。双击选中一个单词,三击选中一行。松开按钮即可通过上述快捷键复制;右键打开菜单。
Android 与 iOS:在终端内任意位置 长按 即可开始选择,然后拖动以扩展、松开以复制 — 文本会进入系统剪贴板。短触仍会穿透到 shell;滑动仍会滚动历史,因此常用手势照常工作。
- 终端顶栏中的 粘贴图标 — 轻触一次即可在光标处粘贴剪贴板内容。剪贴板为空时会显示一个中性的 无内容可粘贴 提示条。
- 终端菜单中的 选择文本 — 一个复选框,会让选择模式一直保持开启,直到你把它关掉,因此每次拖动都是在选择,而不是滚动或穿透点击。
- 在提示符行上长按(光标所在的那一行,且仅当你 未 滚动进历史时)会执行粘贴而不是开始选择 — 当你只想把剪贴板内容放到正在输入的位置时,这很自然。
OSC 52 让远程程序(tmux、vim、fzf)通过一个转义序列复制到你的系统剪贴板 — 双向。
多行粘贴:当你的剪贴板包含换行符时,你会看到一个多行粘贴预览对话框 — 防止粘贴你尚未检查的命令。
回滚与历史
回滚缓冲区最多保留 1000 行。滚轮或触摸拖动可滚动;光标会正确地离开视口(xterm 行为),任何选区都会随文本一起滚动。
清除历史 位于侧边栏的 历史 标签页中,它会清除该连接已保存的 命令 历史 — 不会影响屏幕上的回滚内容。
终端右侧边缘会出现一个 滚动条(桌面端)— 用鼠标抓住它即可浏览历史;Android 和 iOS 则通过触摸滚动。滚轮滚动速度 可在 设置 → 终端 中配置(每次滚轮拨动的行数)。
备用缓冲区(全屏应用)
像 vim、less、nano、htop、mc 这样的程序会切换到 备用缓冲区 — 一个独立的屏幕,退出时消失,不会污染主回滚区。
在输出中查找
按 Ctrl+F(macOS 上为 Cmd+F)打开 查找栏。它会实时搜索回滚区,高亮每一处匹配并在它们之间逐个跳转。高亮是渲染时的叠加层 — 它绝不会向 SSH 流注入任何内容。
字体、主题、高亮
- 字号 — 终端菜单中的 A-/A+ 步进器,或 设置 → 外观 中的滑块;范围 8–32 pt。侧边栏 主题 标签页中的 自定义 字体还允许按别名设置 6–72 pt。
- UI 主题 — 浅色 / 深色 / 跟随系统(整个应用,而非终端)。
- 终端主题 — 见下文 主题 部分;主题按别名设置。
- 高亮规则 — 设置 → 终端 → 输出高亮。添加 正则 + 颜色,例如把
ERROR涂成红色。
命令片段
命令片段 是可复用的命令模板,你可以把它们发送到任意会话。模板中可以嵌入带类型的占位符 — ping -c {count:int=4} {host:ip} — 运行这类片段会打开一个小对话框来询问这些值(int、ip、bool 和 enum 占位符会得到相应的输入控件和校验)。不含占位符的片段会直接运行。立即运行(发送 Enter) 决定是替你发送 Enter,还是只把命令放到提示符处供你编辑。
运行片段的方式:
- Ctrl+Shift+S(macOS 上为 Cmd+Shift+S)— 一个边输入边搜索的选择器;Enter 运行第一个匹配项。
- 终端菜单中的 命令片段 — 同一个选择器,无需键盘。
- 终端侧边栏中的 命令片段标签页 — 最近使用的排在前面,点击一次即可运行,还带有通往编辑器的快捷入口。
- 移动端快捷键栏和 DevOps 键盘上固定的 snip 键;DevOps 键盘的停靠模式还提供一个片段 磁贴层 — 一个便于点按的网格,把你最近使用的片段放在显眼位置。
每个片段都有一个 可见范围:对 所有主机 可见、对某个 分组 可见,或仅对单台 主机 可见。可选的 系统 过滤器(Debian、RHEL、Arch、macOS…)可进一步收窄范围,因此 apt 片段只会在被检测为 Debian 系的主机上出现 — 检测来自登录时的探测(参见下文 主机洞察)。仅在可用时显示 还会在确认主机上不存在该命令时隐藏片段。没有 SSH 主机的会话(本地、串口、Telnet)只能看到全局片段。
在 设置 → 终端 → 命令片段 中管理片段:添加、编辑、创建副本和删除,设置可见范围、系统以及立即运行标志。首次运行时会预置一个包含上百个现成片段的目录 — 按系统分类(Debian、RHEL、Arch、Alpine、SUSE、BSD、macOS),外加 Docker、网络、存储和工具集 — 你可以像编辑自己的片段一样编辑或删除它们。
命令历史与自动补全
每个已保存连接都会记住它的命令历史(如果 保存历史 已开启)。上方向键调出更早的命令,自动补全字段会建议服务器上可用的命令名 — 这是实时的 shell 补全,与你输入过的历史不同。
主机洞察(实时状态)
SSH 会话登录后,应用会静默探测主机 — 操作系统名称、CPU 型号和核心数 — 并开始轮询实时状态:平均负载、内存、交换分区以及各挂载点的磁盘使用率,每一项都带有使用率条,超过 75% 变为琥珀色,超过 90% 变为红色。
- 终端侧边栏的 主机标签页(最左侧的标签页,也是 SSH 会话的默认标签页)可一览全部信息。
- 同样的条目也出现在 连接信息 对话框中。
- 设置 → 终端 → 资源监控(CPU/RAM/磁盘) 可全局开启或关闭轮询,并设置刷新间隔(5–300 秒)。连接表单可按主机覆盖该间隔,其 登录时系统检查 下拉菜单则决定完整探测的运行频率:每次连接、每天一次、每周一次或已禁用。
会话标签页
每个会话 — SSH、SFTP、本地、串口、Telnet — 都存在于一个标签页中。长按(移动端)或右键点击(桌面端)标签页,或活跃会话列表中的卡片,即可打开它的菜单:重命名、连接信息、重启会话 和 关闭标签页。重启会话 会拆除连接并从头重连,同时保留标签页 — 在服务器重启后很方便。当远程会话断开时,终端菜单还会出现 重新连接 项,可就地重新建立连接(本地终端不提供该项 — 请改为新开一个)。
侧边栏(右侧面板)— 主机 / 历史 / 补全 / 命令片段 / 主题
终端右侧(桌面 / 平板)有一个可折叠面板,包含五个标签页。用右边缘的箭头打开它;拖动左边缘可调整大小。状态 按别名 保存 — 每个已保存连接都会记住它的标签页和宽度。
- 主机 — SSH 会话的默认标签页:检测到的系统、CPU 和实时状态。参见上文 主机洞察。
- 历史 — 最近输入的命令。点击会把命令键入终端;旁边的 开关决定是否用 Enter 自动提交。清除历史 也位于此处。
- 补全 — 来自服务器 shell 补全的实时命令名建议。可按别名 静音(铃铛图标)。
- 命令片段 — 该主机可用的片段,最近使用的排在前面。参见上文 命令片段。
- 主题 — 终端外观。见下文部分。
主题 — 终端主题(435 套配色)
主题 按别名 设置 — 每个连接都有自己的背景色、前景色和 16 色 ANSI 调色板(与 ls --color 使用的索引相同:标准 0–7 + 高亮 8–15)。
- 内置 435 套主题目录 — 搜索… 字段按名称过滤。每一行显示背景色、前景色和一条 16 色样条。点击即可立即应用该主题。
- 自定义(此别名) — 在桌面上,侧边栏还提供对字体、背景色、前景色和 16 个 ANSI 槽位的手动编辑。每个槽位都有自己的重置(⟲);整个调色板有单独的重置。
ls --color中的蓝色目录 是 ANSI 4(BLUE)或 12(BRIGHT_BLUE)— 要更改它们,请选择另一个主题或编辑那两个色块。
Android 与 iOS:整个桌面侧边栏被替换为终端顶栏中的一个 调色板图标。点击它会弹出一个底部弹层,包含同样的 435 套主题目录,可搜索并带有实时色块预览。点击某一行会应用该主题并关闭弹层,让你立即看到效果;顶部的 重置 按钮会清除任何覆盖项,使该别名回退到其默认值。
这 435 套内置主题来自开源的 edcet/terminal-themes 合集(MIT)。