内容提要
JetBrains IDE 内置终端将从 2026.3 版起用 libghostty 取代沿用多年的 JediTerm。新引擎支持 Kitty 键盘协议,Shift+Enter 可正常换行,能随 IDE 主题自动切换明暗配色,并修复大量控制序列解析问题,使 AI 代理、Neovim、tmux 等工具界面显示更准确。剪贴板、桌面通知、进度条、图片显示等功能已具备解析基础,后续逐步支持。
延伸解读
从 JediTerm 到 libghostty:终端引擎升级的动因
JetBrains IDE 内置终端长期使用 JediTerm,但 TUI 应用日益依赖现代终端协议,JediTerm 未能支持,导致体验与其他终端存在差距。libghostty 作为 Ghostty 的终端模拟库,被广泛认为可靠且性能出色,因此 JetBrains 选择用它替换 JediTerm。新引擎接管解析和终端状态,IDE 仍负责渲染和高级功能集成。这一更换并非简单升级,而是为了跟上 AI 代理、Neovim、tmux 等工具对终端协议的新要求。
键盘协议与主题同步:日常操作更顺手
libghostty 支持 Kitty 键盘协议和 xterm 的 modifyOtherKeys,使终端应用能区分 Enter、Shift+Enter 和 Ctrl+Enter,并接收按键释放和重复事件。这意味着在 Claude Code、Codex 等 CLI AI 代理中,Shift+Enter 可正常换行,组合快捷键也能完整传递,无需调整 IDE 设置。同时,终端能根据 IDE 主题回答明暗查询,并在切换时发送通知,Claude Code、Neovim、tmux 等可自动跟随主题变化,减少手动配置。
控制序列修复:渲染质量显著提升
新引擎处理了近 50 个 JediTerm 忽略或误读的控制序列,例如 REP 重复字符、冒号分隔的 SGR 颜色、未知 APC/SOS/PM 字符串等。这些修复让 AI 代理、系统监视器、文件管理器等工具的界面显示更准确:线条和边框不再断裂,彩色输出不再出现多余冒号或错误颜色,隐藏代码不再显示为乱码。此外,还支持左右边距、保护区域、制表位控制、插入模式等,进一步改善复杂 TUI 的渲染效果。
未来功能与回退选项
libghostty 已能解析 OSC 52 剪贴板、桌面通知、ConEmu 进度条、Kitty 图形等序列,但 IDE 端尚未实现对应功能。由于解析不再是瓶颈,这些功能有望比 JediTerm 时代更快落地,例如从远程服务器复制到剪贴板、任务完成通知、进度条显示和终端内图片显示。该引擎在 2026.3 EAP 中默认启用,若遇到问题,可通过 Registry 关闭 terminal.use.ghostty.emulator 回退到 JediTerm,并反馈问题。
Q&A
JetBrains IDE 内置终端从哪个版本开始改用 libghostty?
从 2026.3 版开始,JetBrains IDE 的内置终端将使用 libghostty 替代原有的 JediTerm。
libghostty 替换 JediTerm 后,对键盘输入有什么改进?
支持 Kitty 键盘协议,可以区分 Enter、Shift+Enter 和 Ctrl+Enter,并支持按键释放和重复事件。Shift+Enter 现在可以正常换行,而不是发送未完成的消息;组合键也能完整传递给应用。
终端如何跟随 IDE 主题自动切换明暗配色?
终端会响应来自当前 IDE 主题的明暗查询(CSI ? 996 n),并在切换时通过 mode 2031 发送通知。Claude Code、OpenCode、Pi、Neovim 和 tmux 等应用订阅这些通知,因此大多数能自动随 IDE 切换主题。
libghostty 修复了哪些终端控制序列的解析问题?
新引擎处理了近 50 个 JediTerm 忽略或误读的控制序列,例如 REP(重复字符)、冒号分隔的 SGR 颜色、未知的 APC/SOS/PM 字符串等。这解决了行渲染缺失字符、颜色显示错误、垃圾文本等问题。
目前 libghostty 已解析但 IDE 尚未支持的功能有哪些?
包括 OSC 52 剪贴板、桌面通知(OSC 9/777)、ConEmu 进度条、Kitty 图形以及带样式和颜色的下划线。这些功能已具备解析基础,后续将逐步在 IDE 中实现。
如果遇到问题,如何切换回 JediTerm?
可以通过 Help | Find Action 打开 Registry…,然后关闭 terminal.use.ghostty.emulator 选项即可切换回 JediTerm。同时建议在 IJPL-218849 留言或提交 bug 报告反馈问题。