JetBrains IDE 里的内置终端,要换发动机了。从 2026.3 版本开始,这个终端改由 libghostty 驱动——也就是 Ghostty 本身所用的终端模拟库。它替换掉的,是 JetBrains 依赖多年的 JediTerm。

打开网易新闻 查看精彩图片

为什么换?因为终端里跑的东西变了。AI 编程代理如 Claude Code、Codex,全屏应用如 Neovim、tmux,还有系统监控和仪表盘,这些工具对终端的压榨远超一个 shell 提示符。它们依赖现代终端协议,而 JediTerm 从未支持过这些协议。

打开网易新闻 查看精彩图片

这个缺口过去更像小麻烦:体验和其他终端对不上,但没到值得提 bug 的程度。如今 libghostty 接管了 IDE 里的解析和终端状态,渲染以及更高层的功能和集成仍由 IDE 自己负责。JetBrains 提到,不少项目已经内嵌 libghostty,它被普遍视为可靠、高性能的库,因此在考虑过的方案里被优先选中。

打开网易新闻 查看精彩图片

多行提示和快捷键,终于按文档说的来

支持 Kitty 键盘协议之后,终端应用可以区分 Enter、Shift+Enter 和 Ctrl+Enter,还能请求按键释放和重复事件。Claude Code、Codex、Pi 这类命令行 AI 代理,以及 fish shell 和 Neovim,都在用这套协议。终端同时支持 xterm 的 modifyOtherKeys,这是 Vim 使用的较老键盘协议。

落到使用上:Shift+Enter 会在提示里换行,而不是把写了一半的消息发出去;Ctrl、Shift、Alt 与其他键组合的快捷键能完整送达应用。基于终端的编辑器和工具会按预期响应,不需要调整 IDE 设置。过去那个在 Shift+Enter 时发送 Esc+CR 的旧设置已不再需要,会被忽略。

工具跟着 IDE 主题走

把 IDE 切到深色模式,以前会让终端应用犯迷糊:要么深色背景上出现深色文字,要么深色 IDE 里冒出一套亮色配色,除非逐个工具手动配置。

现在终端会根据当前 IDE 主题回答深/浅色查询(CSI ? 996 n),并在你切换主题时通过 mode 2031 发出通知。Claude Code、OpenCode、Pi、Neovim 和 tmux 都订阅了这类主题变更通知,所以其中大多数会随 IDE 自动切换。终端还会回答 OSC 4 调色板查询和 Kitty OSC 21 颜色查询,而 OSC 10/11 查询在 JediTerm 时代就已支持。OpenCode 和 Pi 会读取调色板,Junie CLI 则会询问终端是深色还是浅色。程序现在可以用 OSC 4 设置 16 到 255 的扩展调色板颜色,0 到 15 号颜色仍由 IDE 主题掌控。

输出丰富的终端应用,画得更好了

AI 代理、系统监控、文件管理器、仪表盘,效果好坏取决于渲染它们的终端。新引擎处理了近 50 个 JediTerm 忽略或误读的控制序列,其中几个你可能撞见过:

  • REP(CSI Ps b):ncurses 用它处理 7 个及以上相同字符的连续段,此前有些行渲染出来会缺字符。
  • 冒号分隔的 SGR 颜色(38:2::r:g:b):JediTerm 会把冒号打印出来,还把数字并进错误的属性。
  • 未知的 APC、SOS、PM 字符串:JediTerm 把它们当文本打印,现在会被静默丢弃。

此外还支持左右边距(DECSLRM)、保护区域、制表位控制、插入模式、XTSAVE/XTRESTORE、Kitty 的 CSI 22 J 滚动清除,以及 X10 鼠标上报。光标闪烁模式(?12)现在会被遵循,此前光标总是闪烁。结果就是:线条、边框、分隔符不再错乱,彩色输出不再冒出多余冒号或错误颜色,残留的不可见控制码也不再显示成乱码。

这只是开始

libghostty 已经能解析许多 IDE 尚未响应的序列:OSC 52 剪贴板、桌面通知(OSC 9/777)、ConEmu 进度条、Kitty 图形,以及带样式和颜色的下划线。解析不再是瓶颈,剩下的只有 IDE 这一侧,所以这些功能到来的速度会比 JediTerm 时代更快。

这些基础工作对应的,是你在独立终端里可能熟悉的场景:从远程服务器上运行的程序复制到本地剪贴板;终端里的应用完成任务时收到通知,比如 Claude 处理完提示、正等着你;长任务显示进度条;在终端里直接显示图片。

基于 libghostty 的引擎已在 2026.3 EAP 构建的重做版终端中默认开启,并会延续到 Beta、Release Candidate 和稳定版。如果出问题,可以切回 JediTerm:打开 Help | Find Action,进入 Registry…,关掉 terminal.use.ghostty.emulator。JetBrains 也希望你把遇到的情况留在 IJPL-218849 的评论里,或提交 bug 报告。

这段合作的起点在去年的一个会议上:Ghostty 团队找到 JetBrains,问是否考虑在 IntelliJ IDEA Conf 上使用他们的模拟器。此后每一次讨论,他们都在场。JetBrains 点名感谢了 Mitchell Hashimoto、Tim Culverhouse 以及所有 Ghostty 贡献者——他们把 libghostty 做成了可复用的库,并在集成期间持续改进它。过去几个月里,libghostty 还补齐了 JediTerm 用户依赖的一些功能,这才让切换成为可能。