微軟在幾天前的build大會上展示了 `Windows Terminal`的威力,由於官宣要在6月中旬才上`Microsoft store`,還有一個多月要等呢。好在代碼已公布在 github, 於是決定自己 build 后體驗一番。遇到不少坑,大概整理一下流程,分享給大家。如果大家如果發現問題,歡迎指正。
**官方短視頻如下:** https://v.qq.com/x/page/p0869ovd7aw.html
build大會中的完整版視頻(含英文字幕): https://v.qq.com/x/page/e0870hucdzs.html
將Window 10 升級到1903版本
試過用Windows 10 更新助手(Windows 10 update assistant)來升級Windows 10, 發現只能升級到1809版本。而編譯 github 上的 Microsoft terminal 代碼必須使用Window 10
的1903版本.
因為不升級,解決其他所有的問題,最后會報這個錯(代號DEP 3321
):
好在前不久聽說了工具網站 MSDN, 我告訴你上可以下載到該版本的鏡像。
關於版本選擇,到底選Consumer版還是Business版呢?經大佬Edi Wang
指點,得悉如下信息:
- 如果你的 Windows 是 家庭版或專業版,請選擇
Consumer
版 - 如果你的 Windows 是 企業版,請選擇
Business
版
至於ed2k://
資源的下載,你使用百度雲盤的離線下載也好,使用迅雷也行。
敲黑板: 安裝好Windows 10 1903版后,如果不打算編譯代碼可直接跳到標題直接安裝預編譯版本繼續閱讀~
安裝好git, 從github上clone代碼
首先需要安裝好 git for Windows
(https://gitforwindows.org/),然后使用 git 去 clone 一份代碼。
Microsoft Terminal 的 github倉庫是:
https://github.com/microsoft/Terminal
對應的 clone地址是:
https://github.com/microsoft/Terminal.git。
打開命令行,使用cd命令,切換到自己平時存vs項目的路徑(比如我切換到D:\Coding
)。
接着只需要在Git Bash
中輸入如下命令即可:
git clone https://github.com/microsoft/Terminal.git
等 clone 完成,就可以進行下一步了。
確保 Clone 倉庫完成后,還可以使用以下命令Clone子模塊:
git submodule update --init --recursive
安裝 VS 2019 和 .NET core 3.0 SDK
先安裝 vs 2019 professional 或 enterprise版本,github上的文檔提到了要編譯 window terminal 必須勾選上:
- Desktop Development with C++
- Universal Windows Platform Development
- Windows SDK version 10.0.18362.0
再安裝好.net core 3.0 SDK,比較簡單,就不再詳述。
在vs的設置里,勾選.NET core下的"Use preview SDK"(使用.NET Core SDK預覽版),重啟 VS。
在 vs 2019 中打開Windows terminal項目(對應文件夾Terminal
)下的OpenConsole.sln
, 如果不勾選"使用.NET Core SDK預覽版"直接編譯,很可能會報下面的 Error:
重定解決方案目標
在上一步中,用vs2019打開OpenConsole.sln
時,系統會提示你將項目重新定位到 v142。 對於“Windows SDK版本”,請選擇“10.0.18362.0”。 將“Platform Toolset”設置為“Upgrade to v142”。
然后往下拖,按下圖設置:
設置完后,單擊最下面的OK。
當然,如果誤點了"取消",也能通過右鍵單擊整個Solution -> Retarget solution來設置:
設置好編譯平台和啟動的項目
在你嘗試再次build之前,請確保你已經選擇好與你的計算機匹配的編譯平台(Solution Platform)。
不知道你一開始打開Solution OpenConsole.sln
時編譯平台和啟動項目是什么樣的,我的是這樣的:
要正確地 build,這里需要根據自己電腦的實際情況來設置。比如我的x64的,就配置如下:
否則會出現很多錯誤。
編譯成功后出現一個新的Powershell
解決完編譯時的各種狀況之后,Ctrl + F5
運行項目。
唉,和之前的Powershell有何不一樣呢?按Ctrl + T
之后會多了個菜單,同一個窗口中可以有多個Tab,而其他功能暫時沒進來,等正式版。
嘗試新的跨平台 PowerShell https://aka.ms/pscore6
任務欄中相應的圖標為:
按Ctrl + T
之后, 右上角會出現一個以+
開頭的菜單
但你在菜單中切換到cmd
的時候,視頻中的酷炫效果就有一點出來的跡象了:
接下來,介紹一下如何在上面這個新的cmd
中使用Linux
命令,以我最熟悉的Ubuntu為例來介紹吧。
安裝Ubuntu
在Microsoft store里搜索到Ubuntu
,然后購買,安裝。這實際上就是WSL (Windows Subsystem for Linux)。
當然,你想體驗其他版本的 Linux
,也是可以的,比如Arch Linux
:
在編譯出來的命令行中使用Linux命令
安裝完WSL版的 Linux 后,還需要開啟WSL
的權限:
以"管理員權限"另開一個PowerShell
窗口,
然后輸入如下命令:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
等這里的命令完成,就可以在build出來的 Terminal 中執行 Linux 命令了。
先在cmd
中輸入 ubuntu
, 需要花一點點時間啟動 Ubuntu
, 設置好用戶名和密碼。
然后就可以愉快地玩Ubuntu了,下面我隨便輸入了幾個命令 ps, touch, ls等,如下圖所示。
## 直接安裝預編譯版本
如果自己不想配置和build,可以下載build好的體驗一把:
https://pan.baidu.com/s/1Xrh-0KbsBmh-zJYsdtYqnA 口令: y233
當然,這個預編譯版本的來源是:
https://twitter.com/thebookisclosed/status/1125480984068153344.
另外,Scott Hanselman寫了一篇相關文章:
A new Console for Windows - It's the open source Windows Terminal - Scott Hanselman
https://www.hanselman.com/blog/ANewConsoleForWindowsItsTheOpenSourceWindowsTerminal.aspx,有園友已經將其部分內容翻譯成了中文,見 提前體驗讓人"回歸Windows懷抱"的Windows Terminal - 三升水。
安裝預編譯版本的方法
解壓下載到的文件 WindowsTerminal_SelfSigned_x86_x64_arm64.7
,解壓之。
選擇后綴名為.cer
的證書文件,右擊選擇"安裝證書"。
圖中藍色的兩處人選其一即可。
接下來,點另一個后綴名為.msixbundle
的文件,就可以安裝了:
如果要卸載,也很簡單。只需在開始菜單中輸入應用和功能
,找到相應的軟件,點卸載即可。
## 使用自定義主題
安裝完 Ubuntu
之后,就可以體驗有3類Tab風格的Terminal了,具體安裝方法見前文。
按ctrl + T
,打開另一個 Tab
, 此時會看到設置按鈕,點擊之,會彈出一個 profile.json
的文件。
然后用我上傳的主題文件 profile-my.json 的內容替換其中的內容,保存,一會就看到新的主題樣式了。比如,新的PowerShell
的樣式如下:
當然了,你還可以根據自己的需要在這個配置的基礎上自由發揮,不過提醒一點設置字體時要小心,如果該字體終端中找不到,切換類型時整個 Terminal
會崩掉。
為不同類型的 Tab 加上圖標
可以在這個位置添加圖標:
%LOCALAPPDATA%\packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\RoamingState
我在該文件夾中放入了一些32x32的PNG,然后在profile.json
中可以用ms-appdata://
開頭的路徑來引用圖片資源。
圖標可從這里獲得:
icons
然后將下面新的profile-withIcons.json
文件的內容替換之前的設置.
profile-withIcons.json
弄完后文件夾中的內容是這樣的:
最后的使用效果是:
其他版本的主題文件:
profile.json
中更多配置參數的含義,各位需要自己去Solution Terminal
中搜索相應的字段(C++代碼)看看了~
## 使用 Emoji 表情
切換到WSL
后,就可以體驗 Emoji表情
啦,一開始我用拼音輸入法鍵入了幾個,發現該方法下暫時不方便輸入 Emoji 表情。
好在在Windows 10上還有另外兩種方式可以輸入Emoji 表情:
- Windows 10自帶的 Emoji 表情輸入,有快捷鍵
- 使用第三方 Emoji 表情工具,復制了貼進去
對於第一種方式,我也是剛會不久,Windows 10 中使用 【Win + .】 或 【Win + ;】可調出表情輸入面板,然后繼續使用 Win + . 可以選中表情。當然這里的. 和 ; 都是英文狀態下的半角符號。
對於對二種方式,這里推薦一個字符網站http://cn.piliapp.com/symbol/(可能需要Kēxué地上網),找到自己想要的表情,點頁面上方的復制,然后貼到 Terminal 中就好了。比如我隨便輸入了幾個,效果如下:
要臨時放大字體怎么辦,按 Ctrl + 鼠標滾輪
即可。
后面這張圖基本上覆蓋了官方宣傳視頻中的所有 Emoji 表情 。
**備份地址:**
https://github.com/yanglr/WindowsDevTools/tree/master/awosomeTerminal
**其他玩法:**
Build and install Windows Terminal from Azure DevOps ? Keep IT tidy
https://blog.stomsvik.com/posts/2019/terminal-azure-devops/
如有什么疑問或建議,歡迎及時留言交流~
**參考:**
Terminal/README.md at master · microsoft/Terminal
https://github.com/microsoft/Terminal/blob/master/README.md
Windows 10 上WSL (Windows上的Linux 子系統)的安裝指南 | Microsoft Docs
https://docs.microsoft.com/zh-cn/windows/wsl/install-win10
Donovan Brown | Building the new Windows Terminal with Visual Studio 2019
http://www.donovanbrown.com/post/Building-the-new-Windows-Terminal-with-Visual-Studio-2019
Windows Terminal profile.json
https://gist.github.com/fcharlie/7530d36175bc5249f1ae92be536238cd
作者簡介:Bravo Yeung,計算機碩士,知乎干貨答主(獲81K 贊同, 38K 感謝, 235K 收藏)。曾在國內 Top3互聯網視頻直播公司工作過,后加入一家外企做軟件開發至今。
如需轉載,請加微信 iMath7 申請開白!
歡迎在留言區留下你的觀點,一起討論提高。如果今天的文章讓你有新的啟發,學習能力的提升上有新的認識,歡迎轉發分享給更多人。
歡迎各位讀者加入 .NET技術交流群,在公眾號后台回復“加群”或者“學習”即可。
文末彩蛋
微信后台回復“asp”,給你:一份全網最強的ASP.NET學習路線圖。
回復“cs”,給你:一整套 C# 和 WPF 學習資源!
回復“core”,給你:2019年dotConf大會上發布的.NET core 3.0學習視頻!