这个项目能做什么

mTerm 是一款用 Swift 编写的原生 macOS 终端模拟器,窗口使用 AppKit,终端视图使用 Metal 渲染器。它将自己定位为 iTerm2 的替代品,面向希望获得 Mac 原生体验、GPU 级渲染以及刻意精简的功能集(而非庞大的偏好设置界面)的开发者。它明确避免 AI 功能、云账户和对 shell 的重新构想。 渲染与终端仿真 终端视图采用 Metal 渲染,带有像素对齐的字形图集,旨在让文本在所有尺寸下都保持清晰,而不会出现 GPU 过滤模糊。粗体和斜体使用字体的真实字形,而非合成倾斜,并具有相同的字符前进宽度,使列保持对齐。支持下划线、淡化和反显属性,包括关闭这些属性的代码。调整大小时会重排缓冲区:换行的行会重新合并,并按新宽度重新拆分,拖动时会显示网格尺寸读数。 兼容性以 xterm-256color 为目标,适用于 vim、neovim、htop、fzf、less 和 git 分页器等工具。它支持 24 位真彩色、备用屏幕、滚动区域(DECSTBM)、DEC 线条绘制和同步输出(DEC 2026)。鼠标报告涵盖 SGR(1006)以及用于点击、拖动、移动和滚轮的旧式编码,按住 ⇧ 则改为选择。还包括括号粘贴、焦点事件以及设备/光标位置报告。东亚字符和全角字符占两列,组合标记会与前一个字符合成。 标签页、导航与命令中心 AppKit 窗口有一个可拖拽重新排序的标签页侧边栏,支持全屏,并可恢复会话(标签页、其目录和配置文件)。⌘K 会在每个窗口的每个标签页以及每个菜单栏命令之上打开一个中心,并在一个列表中排序。标签行显示索引、运行状态、标题、目录和前台进程。空查询会列出最近的标签页,并选中上一个标签页,因此 ⌘K ⏎ 可以切回;⌘⌫ 关闭高亮的标签页。操作可按用户会想到的词搜索,例如用 "cls" 搜索 Clear Screen,或用 "blurry" 搜索笔画粗细,这会打开设置并将焦点环放在该控件上。 Shell 集成与 tmux 针对 zsh、bash 和 fish 的 shell 集成使用 OSC 133 添加边栏提示标记,并按退出状态着色,同时支持 ⌘↑ / ⌘↓ 提示跳转。它不会修改用户的 rc 文件;相反,每个 shell 都会获得一个包装器(zsh 使用 ZDOTDIR,bash 使用 --rcfile,fish 使用 vendor_conf.d 片段),该包装器会先加载真正的启动文件。支持 tmux 控制模式:运行 tmux -CC 会将每个 tmux 窗口变成真正的 mTerm 标签页,⌘T 和 ⌘W 映射到 tmux 窗口的创建和关闭,重命名和窗口切换会双向跟随 tmux。一个标签页显示其窗口的活动窗格。一次一个会话;分离会结束这些标签页。 链接、触发器与配置文件 ⌘-点击可打开链接:URL 会转到浏览器,文件路径会在 Finder 中显示。链接在指针悬停并按住 ⌘ 之前不会在视觉上区分,此时链接会采用主题强调色和下划线,光标变为手形。只提供磁盘上存在的路径,跨行换行的 URL 会被视为一个地址。⌘-点击还可以复制由颜色区分开的文本,例如行内代码或引用的草稿,并显示包含文本和字符数的确认。 触发器将正则表达式与操作结合:高亮、重新着色、加下划线、作为 URL 打开、在 Finder 中显示,或运行命令并以 $1 作为匹配项。它们在设置中使用内联测试器进行编辑,并存储在 triggers.json 中。用户规则会先于两条用于 URL 和文件路径的内置规则尝试,这些内置规则可以禁用但不可编辑。配置文件定义命名命令、起始目录、环境以及可选的固定主题,每个配置文件在 profiles/ 下存储为一个 JSON 文件,因此可以共享或提交。它们通过 File > New Tab with Profile 或 ⌘⌥1–9 打开,⌘T 使用默认配置文件。 设置、主题与配置 设置窗口包含 Appearance、Profiles、Triggers、General 和 Notifications 窗格,并有一个搜索字段,可按名称或通俗描述查找控件。主题包括 Tomorrow Night、Solarized(浅色和深色)、Nord、Dracula、Gruvbox Dark 以及 mTerm 自有的浅色和深色,并可导入 iTerm2 .itermcolors 文件以及自动浅色/深色切换。字体家族、大小、笔画粗细和行距(1.0×–2.0×,默认 1.15×)可实时调整。回滚深度可从 1k 到 100k 行配置,并显示每个标签页的成本。macOS 通知涵盖终端注意事件(响铃、OSC 9 / OSC 777)。前台进程运行时的关闭确认和 Clear Screen 确认均可切换。配置位于 ~/Library/Application Support/mTerm/ 下,包括 settings.json、state.json、profiles/*.json 和 triggers.json;v1 中没有单独的配置文件。 安装与状态 安装方式包括 Homebrew cask(brew install --cask d0x2a/tap/mterm)、已签名并公证的通用 DMG,或使用 macOS 14+ 和 Xcode 15+(或 Swift 5.10+ 命令行工具)通过 swift run -c release mTerm 从源代码构建。该项目当前为 v1.3.1,并表示其 SPEC.md 完成定义中的所有项目均已交付。它报告称回滚内存目标已达成且有余量,而吞吐量未达到规范中的理想数字;测量结果和测试工具均记录在 docs/BENCHMARKS.md 中。许可证为 MIT,版权归 Dox2A Labs LLC 所有。