JetBrains Terminal 又发布新架构,Android Studio 将再次迎来新终端

news2025/4/15 20:18:26

不到一年的时间,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+CCtrl+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 内置的终端吗?

参考连接

  • https://blog.jetbrains.com/idea/2024/08/the-new-terminal-beta-updates-for-jetbrains-ides-v2024-2/

  • https://blog.jetbrains.com/idea/2025/04/jetbrains-terminal-a-new-architecture/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2334550.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

论文:Generalized Category Discovery with Large Language Models in the Loop

论文下载地址:Generalized Category Discovery with Large Language Models in the Loop - ACL Anthology 1、研究背景 尽管现代机器学习系统在许多任务上取得了优异的性能,绝大多数都遵循封闭世界的设置,假设训练和测试数据来自同一组预定义…

第十六届蓝桥杯 省赛C/C++ 大学B组

编程题目现在在洛谷上都可以提交了。 未完待续,写不动了。 C11 编译命令 g A.cpp -o A -Wall -lm -stdc11A. 移动距离 本题总分:5 分 问题描述 小明初始在二维平面的原点,他想前往坐标 ( 233 , 666 ) (233, 666) (233,666)。在移动过程…

【计网】网络交换技术之分组交换(复习自用,重要1)

复习自用的,处理得比较草率,复习的同学或者想看基础的同学可以看看,大佬的话可以不用浪费时间在我的水文上了 另外两种交换技术可以直接点击链接访问相关笔记: 电路交换 报文交换 一、分组交换的定义 1.定义 分组交换&#x…

解密CHASE-SQL和XiYan-SQL多智能体AI如何最终实现TEXT2SQL的突破

想象一个世界,无论技术背景如何,任何人都能轻松查询海量数据库、挖掘深层洞察。比如:“我想知道安徽地区最畅销电子产品的第三季度销售额?”——只需一句话。“去年营销支出与客户获取成本之间的相关性如何?”——像聊天一样输入问题。这就是Text-to-SQL的承诺:将人类语言…

思考力提升的黄金标准:广度、深度与速度的深度剖析

文章目录 引言一、广度的拓展:构建多元知识网络1.1 定义与重要性1.2 IT技术实例与提升策略小结:构建多元知识网络,提升IT领域思考力广度 二、深度的挖掘:追求知识的精髓2.1 定义与重要性2.2 IT技术实例与提升策略小结:…

web自动化:下拉选择框、弹出框、滚动条的操作

web自动化:下拉选择框、弹出框、滚动条的操作 一、下拉选择框 1、导包 from selenium.webdriver.support.select inport Select 2、实例化对象 Select(element) 3、常用方法 通过option索引来定位,从0开始:select_by_index(index)通过…

数字人:打破次元壁,从娱乐舞台迈向教育新课堂(4/10)

摘要:数字人正从娱乐领域的璀璨明星跨界到教育领域的智慧导师,展现出无限潜力。从虚拟偶像、影视游戏到直播短视频,数字人在娱乐产业中大放异彩,创造巨大商业价值。在教育领域,数字人助力个性化学习、互动课堂和虚拟实…

互联网三高-数据库高并发之分库分表ShardingJDBC

1 ShardingJDBC介绍 1.1 常见概念术语 ① 数据节点Node:数据分片的最小单元,由数据源名称和数据表组成 如:ds0.product_order_0 ② 真实表:再分片的数据库中真实存在的物理表 如:product_order_0 ③ 逻辑表&#xff1a…

Android游戏逆向工程全面指南

文章目录 第一部分:基础概念与环境搭建1.1 游戏逆向工程概述1.2 法律与道德考量1.3 开发环境准备基础工具集:环境配置示例: 第二部分:静态分析技术2.1 APK反编译与资源提取使用Apktool解包:关键文件分析: 2…

antv x6使用(支持节点排序、新增节点、编辑节点、删除节点、选中节点)

项目需要实现如下效果流程图&#xff0c;功能包括节点排序、新增节点、编辑节点、删除节点、选中节点等 html部分如下&#xff1a; <template><div class"MindMapContent"><el-button size"small" click"addNode">新增节点&…

榕壹云在线商城系统:基于THinkPHP+ Mysql+UniApp全端适配、高效部署的电商解决方案

项目背景&#xff1a;解决多端电商开发的痛点 随着移动互联网的普及和用户购物习惯的碎片化&#xff0c;传统电商系统面临以下挑战&#xff1a; 1. 多平台适配成本高&#xff1a;需要同时开发App、小程序、H5等多端应用&#xff0c;重复开发导致资源浪费。 2. 技术依赖第三方…

Android studio打包uniapp插件

一.参考资料与环境准备 原生工程配置需要使用到Android studio和HbuilderX 当前测试的as版本-20240301,下载地址&#xff1a;HbuilderX版本&#xff1a;4.36 二.插件创建流程 1.导入下载的UniPlugin-Hello-AS工程&#xff08;下载地址见参考资料&#xff09; 2.生成jks证书…

App Cleaner Pro for Mac 中 Mac软件卸载工具

App Cleaner Pro for Mac 中 Mac软件卸载工具 一、介绍 App Cleaner & Uninstaller Pro Mac破解&#xff0c;是一款Mac软件卸载工具&#xff0c;残余垃圾清除工具&#xff01;可以卸载应用程序或只删除不需要的服务文件&#xff0c;甚至可以删除以前删除的应用程序中的文…

开发规范——Restful风格

目录 Restful Apifox 介绍 端口号8080怎么来的&#xff1f; 为什么要使用Apifox? Restful 如果请求方式是Post&#xff0c;那我就知道了要执行新增操作&#xff0c;要新增一个用户 如果请求方式是Put&#xff0c;那就代表我要修改用户 具体要对这些资源进行什么样的操…

大模型——Llama Stack快速入门 部署构建AI大模型指南

Llama Stack快速入门 部署构建AI大模型指南 介绍 Llama Stack 是一组标准化和有主见的接口,用于如何构建规范的工具链组件(微调、合成数据生成)和代理应用程序。我们希望这些接口能够在整个生态系统中得到采用,这将有助于更轻松地实现互操作性。 Llama Stack 定义并标准化…

利用阿里云企业邮箱服务实现Python群发邮件

目录 一、阿里云企业邮箱群发邮件全流程实现 1. 准备工作与环境配置 2. 收件人列表管理 3. 邮件内容构建 4. 附件添加实现 5. 邮件发送核心逻辑 二、开发过程中遇到的问题与解决方案 1. 附件发送失败问题 2. 中文文件名乱码问题 3. 企业邮箱认证失败 三、完整工作流…

08-JVM 面试题-mk

文章目录 1.JVM 的各部分组成2.运行时数据区2.1.什么是程序计数器?2.2.你能给我详细的介绍Java堆吗?2.3.能不能解释一下方法区?2.3.1常量池2.3.2.运行时常量池2.4.什么是虚拟机栈?2.4.1.垃圾回收是否涉及栈内存?2.4.2.栈内存分配越大越好吗?2.4.3.方法内的局部变量是否线…

PostgreSQL技术大讲堂 - 第86讲:数据安全之--data_checksums天使与魔鬼

PostgreSQL技术大讲堂 - 第86讲&#xff0c;主题&#xff1a;数据安全之--data_checksums天使与魔鬼 1、data_checksums特性 2、避开DML规则&#xff0c;嫁接非法数据并合法化 3、避开约束规则&#xff0c;嫁接非法数据到表中 4、避开数据检查&#xff0c;读取坏块中的数据…

从宇树摇操avp_teleoperate到unitree_IL_lerobot:如何基于宇树人形进行二次开发(含Open-TeleVision源码解析)

前言 如之前的文章所述&#xff0c;我司「七月在线」正在并行开发多个订单&#xff0c;目前正在全力做好每一个订单&#xff0c;因为保密协议的原因&#xff0c;暂时没法拿出太多细节出来分享 ​但可以持续解读我们所创新改造或二次开发的对象&#xff0c;即解读paper和开源库…

告别 ifconfig:为什么现代 Linux 系统推荐使用 ip 命令

告别 ifconfig&#xff1a;为什么现代 Linux 系统推荐使用 ip 命令 ifconfig 指令已经被视为过时的工具&#xff0c;不再是查看和配置网络接口的推荐方式。 与 netstat 被 ss 替代类似。 本文简要介绍 ip addr 命令的使用 简介ip ifconfig 属于 net-tools 包&#xff0c;这个…