不到一年的时间,JetBrains 又要对 Terminal 「大刀阔斧」,本次发布的新终端是重构后的全新的架构,而上一次终端大调整还是去年 8 月的 v2024.2 版本,并且在「Android Studio Ladybug | 2024.2.1」也被引入。
不知道你们用不用内置终端,反正我是用的,不到一年的时间就又重构了,所以有时候不是 Android Studio 团队喜欢写 bug ,而是 JetBrains 的坑太多。
一直以来,JetBrains IDE 都附带了一个基于 JediTerm 的内置终端,这是一个 Java 终端仿真器,符合标准的 xterm/VT100 环境。
而在 2024.2 中的新终端,JetBrains 为了引入 AI ,重新设计了这个「终端老古董」,为此引入了增强功能,主要包含改进包括 AI 驱动的命令生成,允许开发者用自然语言描述命令并让 AI 创建命令。

此外, 2024.2 里终端还可以在单行或双行设置之间进行选择,从而提高空间利用率或可读性,并且支持自定义 shell 提示设置,最后 Git 别名和分支、npm 包、PHP 命令和 Ruby CLI 的命令完成功能也得到了增强:

而从 JetBrains IDE 的 2025.1 版本开始,重新设计的终端架构将替代原有的设计,而之所以重新设计,只能说上一个更新给自己挖的坑太大:
在上一个版本,为了搞 AI 支持,终端不会让 shell 直接处理行编辑和快捷方式,而是拦截 IDE 中的用户输入(例如击键和提示文本),并且仅在用户按 Enter 时才向 shell 发送命令。

JetBrains 当时的预期是「为 IDE 级别的 AI 或基于弹出窗口的自动完成等未来功能铺平道路」,但是却忽略了最重要的兼容性问题。
产品想象很美好,落地后一地鸡毛。
2024.2 的终端发布后,陆续就收到各种负面反馈,核心就在于 JetBrains 拦截了输入 :
- 与 shell 行为冲突 :Bash、Zsh 和 fish 等 shell 依赖于用户键盘输入监听实现自动完成、Ctrl+R 历史记录搜索等,但是这个版本里被拦截了
- 键绑定损坏 :存在 Ctrl+C 无法停止正在运行的进程,Ctrl+L 和箭头键的行为与预期不同,并且自定义 .bashrc、.zshrc 或基于插件的设置(例如 Oh My Zsh)的快捷方式无效的情况
- TUI 程序的中断 :基于终端的应用(Vim、less、tmux 等)都期望标准的终端 I/O 序列,但是输出的部分拦截和重写经常导致交互式界面损坏或按键丢失
- 越界 UI:标准 shell 提示符、彩色主题和高级 shell 插件有时根本不出现,因为 JetBrains 用基于 IDE 的提示符替换了它们
而基于这个 2024.2 的设计破坏了基本的 shell 工作流程,大量的负面报告表明,大多数开发人员无法接受严重偏离既定的类似 POSIX 的终端标准的方法,所以 JetBrains 承认自己这次是「拉了泡大的」。
所以 2025 这次再重构,核心就是兼容性和一致性需要回归第一位,例如:
- Muscle memory 标准键绑定(Ctrl+C 、Ctrl+L 、箭头键、Ctrl+R 等)必须完全按预期工作
- 原生 shell 环境 (Oh My Zsh、fish、自定义别名、Powerlevel10k 主题以及 Starship 扩展等)必须完全加载,并且不能被部分 IDE 重新实现所取代
- 性能和响应能力不能倒退, input 和运行命令的速度需要和独立终端一样快或更快
- 与 TUI (Vim、tmux、htop) 的集成必须保持完整,完全符合 POSIX 和 xterm/VT100 标准
所以在 2025.1 版本,重构的终端进行了进一步调整:
- 继续以 JediTerm 作为核心模拟器 :保留 xterm/VT100 ,直接连接到 PTY,命令、信号和按键都传递到用户选择的 shell
- 通过 IDE 编辑器进行渲染 :将终端显示集成到 IntelliJ 平台的编辑器组件(具有 GPU 加速)中,实现高级文本渲染和潜在的 UI 增强功能(例如基于块的命令和输出的可视化分组),并且不会破坏 shell 的逻辑或标准 CLI 行为
- 远程开发支持

而在兼容性和性能完成目标之后,未来在不牺牲速度或一致性的情况下再加入:
- 高级 AI 集成 ,可帮助完成日常任务、运营脚本以及与基础设施相关的命令模板,同时仍然支持 shell 的原生功能。
- 全屏模式
- IDE 重启后的会话还原
- 安全性和云增强功能
核心就是:创新绝不能破坏内核兼容性
最后,可以对比三个终端的性能效果:Top(classic terminal), Center:(terminal 「2023--2024」), Bottom: (reworked terminal 「2025」 ):

本次重构说是重构,更像是先改为原来的经典支持,然后再进行新功能的集成实现,换一条路来避免继续呆在坑里。
那么,你会用 IDEA/AS 内置的终端吗?