昨日,在微軟全球開(kāi)發(fā)者大會(huì)Build 2019中重磅發(fā)布了windows新版命令行——Windows Terminal。一改“歷史厚重感”造型,樣式變得多樣豐富且新添功能,GitHub數(shù)小時(shí)沖擊榜首!
不再是你印象中的命令行。
相信很多人已然厭倦了windows系統(tǒng)黑底白字的命令行:
而就在昨日的微軟全球開(kāi)發(fā)者大會(huì)Build 2019中,微軟發(fā)布的Windows Terminal驚艷全場(chǎng)——命令行變得這么有意思了?
沒(méi)錯(cuò),這次微軟讓富有“歷史厚重感”的命令行變得格外活潑、時(shí)尚。并且提供了許多新功能和個(gè)性化設(shè)置,使得在Windows上的編程體驗(yàn)更加友好。
而且,微軟已經(jīng)將其搬上GitHub,僅僅數(shù)小時(shí)就沖上了趨勢(shì)榜第一!
不是你印象中的命令行
現(xiàn)在,讓我們來(lái)細(xì)數(shù)一下Windows Terminal這些耳目一新的新功能吧!
Windows Terminal將會(huì)有多標(biāo)簽頁(yè)面功能,支持代碼高亮主題和自定義設(shè)置。
支持同屏顯示多種字體、emoji,提供了基于GPU加速的字體渲染。并且不同標(biāo)簽分頁(yè)可以使用不同的主題,應(yīng)對(duì)不同的工作域需要不同的代碼高亮模式。
Windows Terminal還支持用插件來(lái)制作一系列加載項(xiàng)。
它還被設(shè)計(jì)為訪問(wèn)PowerShell,cmd.exe和Windows子系統(tǒng)Linux(WSL)等環(huán)境的中心位置。
Windows Terminal將會(huì)在微軟商店提供下載,預(yù)計(jì)于六月中旬面向開(kāi)發(fā)者提供預(yù)覽,而1.0正式版將會(huì)在今年冬季發(fā)布。微軟表示W(wǎng)indows Terminal不會(huì)立刻取代老版的命令提示符,以保證用戶的兼容性,不過(guò)微軟有意將Windows Terminal設(shè)置成Windows默認(rèn)的命令行工具。
數(shù)小時(shí),沖擊GitHub趨勢(shì)榜第一!
該爆款項(xiàng)目包括以下源代碼:
Windows Terminal
Windows 控制臺(tái)主機(jī) (conhost.exe)
兩個(gè)項(xiàng)目之間共享的組件
ColorTool
展示如何使用Windows控制臺(tái)API的示例項(xiàng)目
Windows Terminal
這部分內(nèi)容在上一小節(jié)已做詳細(xì)介紹,就不再贅述。
Windows 控制臺(tái)主機(jī)
Windows 控制臺(tái)主機(jī)程序 conhost.exe是 Windows 原生的命令行體驗(yàn),它實(shí)現(xiàn)了 Windows 的命令行基礎(chǔ)架構(gòu),同時(shí)提供 Windows Console API, 輸入引擎、渲染引擎和用戶配置信息。本項(xiàng)目中的控制臺(tái)主機(jī)代碼實(shí)際上是 Windows 中的 conhost.exe 的源碼。
控制臺(tái)的主要目的是對(duì)已有控制臺(tái)應(yīng)用保持向后兼容性。
自從 2014 年有了 Windows 命令行以來(lái),開(kāi)發(fā)團(tuán)隊(duì)已經(jīng)給控制臺(tái)增加了很多新特性,包括窗口透明化、基于行的選擇以及支持 ANSI / 虛擬終端序列 Virtual Terminal sequences, 24-bit color, 以及一個(gè) Pseudoconsole ("ConPTY") 等等。
但是由于控制臺(tái)主要的目標(biāo)是維護(hù)向后兼容性,所以盡管這么多年社區(qū)一直希望我們能添加一些特性(例如 Tabs),但是我們不可能再增加這些特性。
諸多限制讓團(tuán)隊(duì)決定開(kāi)發(fā)一個(gè)全新的 Windows Terminal。
共享的組件
在對(duì)控制臺(tái)進(jìn)行大修的同時(shí),我們對(duì)其代碼庫(kù)進(jìn)行了大量的改進(jìn)。主要是將邏輯實(shí)體清晰地劃分為模塊和類(lèi),引入了一些關(guān)鍵的擴(kuò)展點(diǎn),用更安全、更高效的STL容器替換了幾個(gè)舊的、自制的集合和容器,并通過(guò)使用微軟的 Wil header 庫(kù)使代碼更簡(jiǎn)單、更安全。
這項(xiàng)大修工作導(dǎo)致創(chuàng)建了幾個(gè)對(duì) Windows 上的任何終端實(shí)現(xiàn)都有用的關(guān)鍵組件,包括一個(gè)新的基于 DirectWrite 的文本布局和渲染引擎、一個(gè)能夠存儲(chǔ) UTF-16 和 UTF-8 的文本緩沖區(qū)以及一個(gè)VT解析器/發(fā)射器。
構(gòu)建一個(gè)全新終端
當(dāng)開(kāi)始構(gòu)建全新終端應(yīng)用程序時(shí),我們探索并評(píng)估了幾種方法和技術(shù)堆棧。最終決定繼續(xù)使用 C++ 開(kāi)發(fā),并通過(guò)共享上述的現(xiàn)代化組件來(lái)實(shí)現(xiàn)我們的目標(biāo),并基于現(xiàn)代 Windows 應(yīng)用程序平臺(tái)和 UI 框架之上進(jìn)行開(kāi)發(fā)。
此外,我們意識(shí)到終端的渲染器和輸入堆棧可以構(gòu)建成可重用的 Windows UI 控件,方便其他人可以將其合并到其他應(yīng)用程序中。
源碼構(gòu)建
該項(xiàng)目使用 git submodules 包含一些相關(guān)依賴,要確保子模塊被更新,請(qǐng)?jiān)跇?gòu)建器使用如下命令檢查:
gitsubmoduleupdate--init--recursive
OpenConsole.sln 需要在 Visual Studio 構(gòu)建或者是使用 MSBuild 在命令行中構(gòu)建。命令行構(gòu)建的方法如下:
nugetrestoreOpenConsole.slnmsbuildOpenConsole.sln
團(tuán)隊(duì)還在 tools 目錄下提供了一組常用的腳本可以幫助自動(dòng)化處理構(gòu)建和運(yùn)行測(cè)試的過(guò)程。
-
微軟
+關(guān)注
關(guān)注
4文章
6602瀏覽量
104149 -
WINDOWS
+關(guān)注
關(guān)注
4文章
3551瀏覽量
88831 -
GitHub
+關(guān)注
關(guān)注
3文章
472瀏覽量
16470
原文標(biāo)題:編程新霸!微軟重磅推出命令行新工具,數(shù)小時(shí)沖擊GitHub榜首
文章出處:【微信號(hào):AI_era,微信公眾號(hào):新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論