0

0

Windows Terminal是什么?

心靈之曲

心靈之曲

发布时间:2025-06-16 00:06:08

|

715人浏览过

|

来源于php中文网

原创

windows terminal是什么?windows terminal 是一款全新推出、广受欢迎且功能强大的终端工具。它集成了许多社区呼声较高的功能,如多标签页支持、富文本显示、多语言适配、高度可定制性、主题与样式设置,还支持表情符号以及基于gpu加速的文本渲染等。尽管如此,该终端依旧遵循我们的设计原则,确保其运行流畅、性能卓越,并且不会过多占用系统资源或电力。

Windows Terminal是什么?

Windows Terminal是什么?

Windows 控制台主机

Windows 控制台主机程序 conhost.exe 是 Windows 自带的经典命令行界面,它负责构建 Windows 的基本命令行框架,同时提供 Windows Console API、输入引擎、渲染引擎及用户配置数据。此项目中的控制台主机代码实际上源自 Windows 内部的 conhost.exe 源码。

控制台的核心任务是对现有命令行软件保持向后兼容。

自从2014年推出Windows命令行以来,开发团队陆续为控制台增添了多项新功能,涵盖窗口透明效果、按行选择模式以及支持ANSI/虚拟终端序列(Virtual Terminal sequences)、24位色彩、伪终端(Pseudoconsole,“ConPTY”)等。

然而,鉴于控制台的主要职责在于维持向后兼容性,即便多年来社区多次呼吁添加某些特性(例如标签页功能),我们也难以实施这些改动。

多种约束促使我们着手打造一款全新的Windows Terminal。

共享组件

在对控制台进行全面升级的过程中,我们对其代码库进行了大幅优化。具体而言,我们将逻辑实体明确划分为模块与类,引入了若干关键扩展点,用更安全高效的STL容器替代了几款老旧自制的集合与容器,并借助微软的Wil头文件让代码更加简洁且安全。

这次重大改造催生出多个对Windows上任何终端实现都至关重要的核心组件,其中包括一款基于DirectWrite的新文本布局与渲染引擎、一个能够储存UTF-16和UTF-8编码文本的缓冲区以及一个VT解析器/发射器。

构建全新终端

开始构建全新终端应用程序时,我们考察并评估了多种方式和技术栈。最终决定继续采用C++编程语言,并利用共享上述现代化组件达成目标,同时依托现代Windows应用程序平台与UI框架开展开发。

另外,我们意识到终端的渲染器与输入堆栈可以设计成可复用的Windows UI控件,这样便能让他人轻松将其整合进其他应用之中。

阿里云-虚拟数字人
阿里云-虚拟数字人

阿里云-虚拟数字人是什么? ...

下载

源码构建

本项目运用git submodules包含了一些关联依赖项,若想保证子模块处于最新状态,在构建前需执行以下命令:

git submodule update--init --recursive

OpenConsole.sln需要在Visual Studio里构建或者通过MSBuild在命令行内构建。命令行构建的具体步骤如下:

nugetrestoreOpenConsole.slnmsbuildOpenConsole.sln

我们还在tools目录下提供了若干实用脚本,旨在简化构建流程并辅助运行测试。

项目涵盖了以下内容:

• Windows Terminal

• Windows控制台主机 (conhost.exe)

• 上述两项的共享组件

• ColorTool

• 示例项目 用于演示如何运用Windows Console APIs

相关专题

更多
堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

394

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

574

2023.08.10

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

394

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

574

2023.08.10

console接口是干嘛的
console接口是干嘛的

console接口是一种用于在计算机命令行或浏览器开发工具中输出信息的工具,提供了一种简单的方式来记录和查看应用程序的输出结果和调试信息。本专题为大家提供console接口相关的各种文章、以及下载和课程。

412

2023.08.08

console.log是什么
console.log是什么

console.log 是 javascript 函数,用于在浏览器控制台中输出信息,便于调试和故障排除。想了解更多console.log的相关内容,可以阅读本专题下面的文章。

502

2024.05.29

自建git服务器
自建git服务器

git服务器是目前流行的分布式版本控制系统之一,可以让多人协同开发同一个项目。本专题为大家提供自建git服务器相关的各种文章、以及下载和课程。

703

2023.07.05

git和svn的区别
git和svn的区别

git和svn的区别:1、定义不同;2、模型类型不同;3、存储单元不同;4、是否拥有全局版本号;5、内容完整性不同;6、版本库不同;7、克隆目录速度不同;8、分支不同。php中文网为大家带来了git和svn的相关知识、以及相关文章等内容。

551

2023.07.06

c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

41

2026.01.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Git 教程
Git 教程

共21课时 | 3万人学习

Git版本控制工具
Git版本控制工具

共8课时 | 1.5万人学习

Git中文开发手册
Git中文开发手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号