Hacker News 中文摘要

RSS订阅

2025年终端模拟器现状:迷途的冠军 -- State of Terminal Emulators in 2025: The Errant Champions

文章摘要

2025年终端模拟器评测显示,ucs-detect工具已扩展支持检测DEC私有模式、sixel图形、像素尺寸和软件版本等功能,通过发送控制序列测试光标定位准确性,并与Python wcwidth库进行比对验证终端兼容性。

文章总结

2025年终端模拟器发展现状:领跑者与挑战

本文是作者对2023年《终端模拟器Unicode支持大比拼》的后续追踪。通过升级版的ucs-detect测试工具(现支持DEC私有模式、Sixel图形、像素尺寸和软件版本检测),作者对主流终端进行了全面评估。

核心挑战:字符宽度问题

终端模拟器面临的根本难题在于:如何将复杂的Unicode字符映射到固定宽度的网格中。当终端对零宽连接符、变体选择器等特殊字符处理失当时,会导致文本错乱、光标错位等问题。

性能冠军

  1. Ghostty:Mitchell Hashimoto用Zig语言全新开发,凭借精准的Unicode实现成为新晋冠军。其发布的libghostty库有望替代老旧的libvte。
  2. Kitty:Kovid Goyal开发的终端同样表现优异,其文本分割算法与Python wcwidth规范高度吻合,是唯二能正确处理变体选择器15的终端。

测试发现

  • 性能差异:iTerm2和Extraterm测试耗时长达1小时(其他终端仅需数分钟),GNOME Terminal完整测试甚至需要5小时以上。
  • 技术优化:Python wcwidth通过LRU缓存优化表现优异,验证了人类语言通常只使用Unicode中小部分字符的规律。
  • 兼容性问题:Terminology存在结果不一致问题,iTerm2对所有DEC私有模式返回"支持但不可更改"的固定响应,Konsole则完全不回应模式查询。

未来方向

Kitty提出的文本尺寸协议开创性地探索了可变宽度文本显示,有望解决复杂文字(如克伦语)在等宽终端中的可读性问题。作者通过Contour终端与Kate编辑器的对比截图,直观展示了当前固定宽度显示的局限性。

(注:原文中涉及的具体测试数据表格、技术讨论细节及多个外部链接已精简,保留核心观点和关键案例。图片描述转为文字说明,保持内容连贯性。)

评论总结

以下是评论内容的总结:

  1. 技术落后问题

    • 有用户质疑测试的VTE版本落后(2023年版本用于2025年状态测试),且仍使用GTK 3而非支持GPU的GTK 4。
      引用:"So the state of 2025 then tests a VTE that is from 2023? 4 major releases behind?"
  2. 终端功能与协议争议

    • 对Kitty图像协议与Sixel协议的竞争提出疑问,部分终端(如Konsole、WezTerm)支持Kitty协议,但Sixel仍被部分用户使用。
      引用:"why we have 2 competing protocols right now"
    • 有用户指出Xterm实际支持Sixel,与表格内容矛盾。
      引用:"Xterm supports sixels."
  3. 终端选择与用户体验

    • Ghostty因内置主题选择器和跨设备一致性受到好评,被视为Alacritty的改进版。
      引用:"Overall, it literally looks like a better Alacritty alternative."
    • 部分用户偏好特定终端(如iTerm2的Tek 4010模式、Foot的轻量快速)。
      引用:"Foot is excellent... very fast to launch, and uses few resources."
  4. 安全与信任问题

    • 有用户对非标准终端的安全性表示担忧,倾向于使用系统默认终端(如SteamOS的Konsole)。
      引用:"I'd like the thing I type my passwords into to be as trusted as possible."
  5. 遗漏与补充建议

    • 多次提到未包含的终端或测试(如WezTerm、vttest结果、xterm.js)。
      引用:"No love for Windows Terminal?"
      引用:"no xterm.js? it's a very good cross-platform terminal emulator"
  6. Unicode支持的实用性争议

    • 部分用户认为Unicode支持对日常使用影响有限,更关注其他功能。
      引用:"I can't remember the last time I used a non-ascii character in the terminal."

总结呈现了技术争议、用户体验、安全顾虑及功能偏好等多角度观点,同时保留了原始评论的关键引用。