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


猜你喜欢
- wps公式编辑器工具栏隐藏了怎么办?wps表格编辑公式的时候,发现公式编辑工具栏没有了,该怎么重新显示出来呢?下面我们就来看看wps显示表格
- 这篇文章主要介绍了禁用win7资源管理器搜索框历史记录图文教程,经常使用搜索框搜索文件的朋友会注意到有个最近搜索的下拉框显示,本文讲解的就是
- 小编近日在使用QQ音乐听歌时,意外发现播放歌曲时出现了歌词不同步的情况,前一句的歌词往往唱完后才显示在屏幕上。针对这一情况,小编今天为大家带
- Win10桌面图标文字有阴影怎么解决?之所以桌面图标文字会有阴影是因为启用了某个视觉效果,防止桌面背景是白色的时候看不到文字,因为字也是白色
- 在Win10系统中,建立局域网能够实现实现资源的共享,既然资源要共享,资源就不会太少,方便起见,如何组件局域网呢?下面就来一起看看吧。以台式
- Round函数是可以经常会用到的函数,如果你不会用,四舍五入就无法更精确,所以大家还是学学用吧。在前面,我们介绍了,利用INT函数来构造四舍
- win7怎么设置电脑安全?如今,那些网络病毒和木马以及其他的恶意程序的传播也越来越猖狂,我们防不胜防,一旦中招,我们的损失往往很惨重。那么安
- PRODUCT函数的功能是将所有以参数形式给出的数字进行相乘,并返回乘积值。其语法如下:PRODUCT(number1,number2,..
- Win10系统可以说是最常用的系统之一,虽然Win10系统有设置任务栏透明的功能,但很多小伙伴却觉得Win10任务栏设置透明后透明度不够,那
- 页面布局→页面设置→工作表→顶端标题行。输入$1:$2(标题两行,一行就是$1:$1),也可将光标放入框内后用鼠标点选表左边的第一行或两行。
- 有公司人员列表一张,现在想选择学历为博士和硕士以外的所有人员内容,该如何操作呢?今天,小编就教大家在Excel中表格进行反向选择的操作技巧。
- 在HTML中开发人员经常需要解决跨域、跨窗口消息传递的问题,这时候就需要应用PostMessage函数,用于将消息放入到消息队列中进行处理。
- 只要看得懂程序的人都知道assert,在Windows下使用VC编写,使用assert之后,只需在IDE中设置为debug版或者是relea
- Win7系统怎么设置禁止鼠标唤醒计算机?Windows 7的默认设置下,常常会出现偶尔触碰一下鼠标就被唤醒的情况,导致计算机休眠失效该怎么办
- msqry32.exe - msqry32进程的详细介绍进程文件: msqry32 or msqry32.exe 进程名称: Microso
- 很多成功升级完Win11的用户们本来打算好好体验一下Windows 11这个新系统到底有哪些新功能的,但是没想到刚刚更新完的系统开始闪屏了,
- 本次Excel教程主要是包含数据有效性设置、公式函数等内容的设置,下面我们一起来看看怎样设置的吧!1、启动Excel2013,输入好测试数据
- 在使用excel的时候会需要用到制作筛选的技巧,如果不懂得如何使用制作筛选技巧的朋友不妨一起来研究学习一番,下面是小编带来的关于excel表
- 经常在编辑Word表格的时候,遇到很多表格问题,真难!今天给大家分享表格中无法调整行高的这个问题,原来是设置了文字段前段后距离的问题。解决方
- 终端运行命令后提“示Operation not permitted” 报错,这个问题一般只有在macOS Ventura系统出现比较频繁,或