点击“小詹学Python”,选择“星标”公众号

重磅干货,第一时间送达

本文转载自新智元,禁二次转载

来源 | youtube、GitHub

编辑 | 元子

在微软全球开发者大会Build 2019中重磅发布了windows新版命令行——Windows Terminal。一改“历史厚重感”造型,样式变得多样丰富且新添功能,终于放出预览版供下载了!

微软Build大会上官宣的新款Windows Terminal,终于放出预览版供下载了!

可以在其中访问传统的cmd系列PowerShell和Windows的Linux子系统(WSL)。

最早只有开发人员能够从GitHub上提供的代码编译和使用Windows终端,如今普通Windows用户也可以通过应用商店一键下载安装。

Windows Terminal将支持多选项卡、通过编辑JSON文件自定义主题。于是大家开始愉快的玩了起来:

官方截图:

Windows Terminal还支持完整的基于GPU的文本呈现的表情符号。微软在Build上展示了一个华丽的sizzle视频表情符号,文本渲染是基于DirectX的,因此它将显示PC上可用的常规文本字符,字形和符号。

不是你印象中的命令行

现在,让我们来细数一下Windows Terminal这些耳目一新的新功能吧!

Windows Terminal将会有多标签页面功能,支持代码高亮主题和自定义设置。

支持同屏显示多种字体、emoji,提供了基于GPU加速的字体渲染。并且不同标签分页可以使用不同的主题,应对不同的工作域需要不同的代码高亮模式。

Windows Terminal还支持用插件来制作一系列加载项。

它还被设计为访问PowerShell,cmd.exe和Windows子系统Linux(WSL)等环境的中心位置。

Windows Terminal将会在微软商店提供下载,预计于六月中旬面向开发者提供预览,而1.0正式版将会在今年冬季发布。微软表示Windows Terminal不会立刻取代老版的命令提示符,以保证用户的兼容性,不过微软有意将Windows Terminal设置成Windows默认的命令行工具。

数小时,冲击GitHub趋势榜第一!

该爆款项目包括以下源代码:

  • Windows Terminal

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

  • 两个项目之间共享的组件

  • ColorTool

  • 展示如何使用Windows控制台API的示例项目

Windows Terminal

这部分内容在上一小节已做详细介绍,就不再赘述。

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 包含一些相关依赖,要确保子模块被更新,请在构建器使用如下命令检查:

OpenConsole.sln 需要在 Visual Studio 构建或者是使用 MSBuild 在命令行中构建。命令行构建的方法如下:

团队还在 tools 目录下提供了一组常用的脚本可以帮助自动化处理构建和运行测试的过程。

参考链接

GitHub地址:

https://github.com/microsoft/Terminal

下载地址:

https://www.microsoft.com/en-us/p/windows-terminal-preview/9n0dx20hk701?activetab=pivot:overviewtab

GitHub 4.6 万星:Windows Terminal 预览版开放下载!相关推荐

  1. 终于等到你!微软正式上线 Windows Terminal 预览版

    前一段时间,一直在知乎.技术社区收到技术小伙伴们的终极拷问:微软Build 大会上提到的「6月中旬」要上Windows store 的 Windows Terminal 到底啥时候可以用到呀? 有一次 ...

  2. JavaFX 已从 JDK 中独立拆分,早期预览版开放下载

    百度智能云 云生态狂欢季 热门云产品1折起>>>   今年 3 月,我们曾报道过 Oracle 从 JDK 11 开始将把 JavaFX 将作为独立模块从 JDK 中分离出来,以使 ...

  3. Windows 11 预览版泄露!有 macOS 那味儿了......

    ‍‍ 整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) 两周前,我们还在就下一代 Windows 的名称争论不休: "Windows 10 党"认为:下一代 Wind ...

  4. 微软提供支持Windows 10预览版和EdgeHTML 14的预配置虚拟主机

    如果你使用微软预配置的虚拟主机来测试最新的Windows 10版本,那么微软希望告诉你又有一些新版本发布了.根据微软Edge开发者推特账号更新的最新推文,包含最新EdgeHTML版本的Windows ...

  5. Windows 11 预览版 Build 22000.168 发布

    微软现已发布第八个 Windows 11 预览版更新 KB5005191,版本号升级至 Build 22000.168. 本次更新面向 Beta 频道和 Dev 频道的 Windows 预览体验成员推 ...

  6. Windows 11 预览版 Build 22000.120 发布

    微软现已发布第五个 Windows 11 预览版更新 KB5005188,版本号升级至 Build 22000.120. 本次更新面向 Dev 频道和 Beta 频道的 Windows 预览体验成员推 ...

  7. 微软IE9开发者预览版提供下载 支持HTML5

    北京时间3月17日早间消息,据国外媒体报道,微软3月16日开始提供IE9浏览器首个开发者预览版的下载,下载网址为www.IETestDrive.com. IE9平台预览版并不包含IE9用户界面,仅仅提 ...

  8. Windows 10预览版14316开启Bash命令支持

    00x0 前言 4月7日凌晨,微软推送了最新的Windows 10一周年更新预览版14316,其中重要的是原生支持Linux Bash命令行支持. 00x1 问题 如何开启Linux Bash命令行? ...

  9. Windows 11 预览版来了?

    最近,在一些文章看到,win11预览版来了,还有预览视频. 不过,遗憾的是,经过小编的一番论证,这是假的. B站17年就有这种视频了,只不过是个ppt而已~ 不过微软要放弃win7的更新维护倒是真的. ...

最新文章

  1. 2019最新实战!给程序员的7节深度学习必修课,最好还会Python!
  2. cdf2rdf--复对角矩阵转化为实对角矩阵
  3. ubuntu下vscode使用cmake编译运行c++配置文件
  4. 无心剑随感《程序人生乐无穷》
  5. 我的HEVC码流分析工具MFC小笔记:树形控件使用及窗口缩放
  6. 老程序员提给后浪程序员的职涯建议
  7. Linux性能分析工具汇总
  8. HDU1846 Brave Game【巴什博弈】
  9. 【SQL Server】CONVERT() 函数
  10. 绿皮书答案:A Practical Guide to Quantitative Finance Interviews
  11. 双网卡(内外网)配置,路由+DNS
  12. [SSM框架]—Spring入门
  13. 厚基础Linux——第七周作业
  14. split和ubound函数的用法
  15. Android gradle统一依赖版本:Composing builds
  16. 副屏幕全屏_电脑 双屏(双屏电脑主屏副屏设置)
  17. 【总结】反欺诈(Fraud Detection)中所用到的机器学习模型
  18. U盘格式化后如何恢复数据?
  19. mac 安装 pip
  20. 【类和对象(中)】六大默认成员函数

热门文章

  1. mysql 导出表结构和表数据 mysqldump用法(自己测试了)
  2. 解决 502、504 Gateway Time-out(nginx)
  3. mysql -uroot -proot tc -e select * from merchandise limit 1这个-E的命令作用是什么,用来什么什么的?
  4. Linux之sort:r倒叙t分隔符n数值型k排序依据
  5. Linux配置Nginx与PHP-FPM出现[error] 80143#0: *1 connect() failed (111: Connection refused) while connectin
  6. PHP的mysqli_fetch_all
  7. python和对象复习_面向对象阶段复习
  8. Linux给用户设置全局变量
  9. 移动端、微信小程序页面布局参考
  10. PHP被忽视的编码规范