Windows Terminal是什么?
时间:2022-07-09 06:41:13
Windows Terminal是什么?Windows Terminal 是一个全新的、流行的、功能强大的命令行终端工具。包含很多来社区呼声很高的特性,例如:多 Tab 支持、富文本、多语言支持、可配置、主题和样式,支持 emoji 和基于 GPU 运算的文本渲染等等。同时该终端依然符合我们的目标和要求,以确保它保持快速、高效,并且不会消耗大量内存和电源。
Windows 控制台主机
Windows 控制台主机程序 conhost.exe是 Windows 原生的命令行体验,它实现了 Windows 的命令行基础架构,同时提供 Windows Console API, 输入引擎、渲染引擎和用户配置信息。本项目中的控制台主机代码实际上是 Windows 中的 conhost.exe 的源码。
控制台的主要目的是对已有控制台应用保持向后兼容性。
自从 2014 年有了 Windows 命令行以来,开发团队已经给控制台增加了很多新特性,包括窗口透明化、基于行的选择以及支持 ANSI / 虚拟终端序列 Virtual Terminal sequences, 24-bit color, 以及一个 Pseudoconsole ("ConPTY") 等等。
但是由于控制台主要的目标是维护向后兼容性,所以尽管这么多年社区一直希望我们能添加一些特性(例如 Tabs),但是我们不可能再增加这些特性。
诸多限制让我们决定开发一个全新的 Windows Terminal。
共享的组件
在对控制台进行大修的同时,我们对其代码库进行了大量的改进。主要是将逻辑实体清晰地划分为模块和类,引入了一些关键的扩展点,用更安全、更高效的STL容器替换了几个旧的、自制的集合和容器,并通过使用微软的 Wil header 库使代码更简单、更安全。
这项大修工作导致创建了几个对 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
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
win10软件默认安装路径为C盘_win10软件默认路径为C盘解决方法
![](https://img.aspxhome.com/file/2023/3/a296476_0s.png)
Win7看电影时出现黑屏却有声音的解决办法
![](https://img.aspxhome.com/file/2023/27/a232536_0s.jpg)
数字对齐,你会吗?
Win7系统怎么一键重装?系统之家装机大师一键重装win7教程
![](https://img.aspxhome.com/file/2023/26/a228506_0s.png)
WPS表格怎么快速的按行或列拆分?
![](https://img.aspxhome.com/file/2023/2/a166652_0s.jpg)
虚拟内存设置多少合适 虚拟内存最佳设置数值推荐
![](https://img.aspxhome.com/file/2023/28/a240718_0s.jpg)
Win7如何使用Disk Genius检测和修复硬盘坏道?
![](https://img.aspxhome.com/file/2023/27/a231560_0s.jpg)
WPS表格中怎么求最大值和最小值?
![](https://img.aspxhome.com/file/2023/0/a166730_0s.jpg)
macbookair提醒事项怎么用?mac添加提醒事项怎么设置
![](https://img.aspxhome.com/file/2023/30/a264900_0s.jpg)
Win10接收不到创意者更新怎么办?
![](https://img.aspxhome.com/file/2023/26/a225458_0s.jpg)
局域网磁盘共享用户数量设置教程
![](https://img.aspxhome.com/file/2023/2/a291102_0s.jpg)
PS堆栈教程—如何使用pscc堆栈模式打造油彩天空?
![](https://img.aspxhome.com/file/2023/9/a212479_0s.jpeg)
苹果什么时候出5g手机?苹果x未来支持5g网络吗?
电脑版wps文档如何将脚注文字设置为红色
![](https://img.aspxhome.com/file/2023/6/a182896_0s.png)
Win8系统文件损坏或丢失怎么办? Win8系统文件损坏或丢失的解决方法
![](https://img.aspxhome.com/file/2023/28/a246125_0s.jpg)
WPS2016如何复制段落格式?
![](https://img.aspxhome.com/file/2023/7/a163727_0s.jpg)
excel中Left、Right、Mid 函数的使用方法
![](https://img.aspxhome.com/file/2023/3/a155483_0s.gif)
64位简体中文 Win10最新版Build 10240.16425镜像下载
![](https://img.aspxhome.com/file/2023/28/a248123_0s.jpg)
win7系统连不了网怎么办?win7系统连不上网右下角有感叹号的7种解决方法图文教程
![](https://img.aspxhome.com/file/2023/28/a243336_0s.jpg)
Excel SHEET 函数 使用实例教程
![](https://img.aspxhome.com/file/2023/2/a162332_0s.png)