Windows Terminal:微软给开发者的情书

25 次阅读 0 点赞 0 评论 7 分钟原创开源项目

10万星的Windows Terminal用现代C++重构控制台体验,支持多标签、GPU渲染、WSL集成和可嵌入终端控件,是Windows开发者必备工具。

#windows # terminal # cpp # wsl # developer-tools # microsoft
Windows Terminal:微软给开发者的情书

作为一个被 Spring Boot 折磨了八年的 Java 老兵,今天我来聊聊微软的 Windows Terminal —— 这个让我在 Windows 上终于能体面地敲命令行的神器。

说实话,以前我在 Windows 上开 CMD 或 PowerShell,总感觉像穿着拖鞋去参加婚礼:功能是有了,但就是不得劲。直到 Windows Terminal 出现,我才意识到:原来微软也懂开发者的心!

它解决了什么问题?

简单说,Windows Terminal 是对传统 Windows 控制台(conhost.exe)的一次彻底现代化改造。老控制台为了向后兼容,几十年不敢大改,连 emoji 都显示不了。而 Terminal 则甩掉了历史包袱,支持:

  • 多标签页(终于不用开一堆窗口了!)
  • 真正的 Unicode 和 emoji 支持
  • GPU 加速渲染(流畅如丝)
  • 高度可配置的主题、字体、快捷键
  • 支持 WSL、PowerShell、CMD、Azure Cloud Shell 等多种 shell

这就像把诺基亚 3310 换成了 iPhone —— 不是功能多了多少,而是体验升维了。

技术架构亮点

虽然我是 Java 人,但读完这个项目的 README 和文档,不得不佩服微软的工程设计。

1. 模块化 + 共享组件

项目里不仅有新 Terminal,还包含了老 conhost.exe 的源码,以及两者共享的核心组件。比如:

  • 基于 DirectWrite 的文本渲染引擎
  • 支持 UTF-16/UTF-8 的文本缓冲区
  • VT(ANSI 转义序列)解析器和发射器
  • ConPTY(伪终端)基础设施

这些组件被抽象成可复用的模块,既让老控制台受益(比如加了 24-bit color),又为新 Terminal 提供了坚实基础。这种“重构不重写”的策略,堪称大型遗留系统现代化的教科书案例。

2. C++ + WinRT + UWP

项目采用现代 C++(配合 WIL 库提升安全性),构建为 UWP 应用。这意味着它能利用 Windows 11 的新特性,同时通过 MSIX 打包实现沙箱化和自动更新。虽然我对 C++ 的模板和指针仍有心理阴影,但不得不说,在系统级工具上,C++ 依然是王者。

3. 可嵌入的 Terminal Control

最让我惊讶的是,Terminal 的核心被设计成一个 可复用的 UI 控件!也就是说,其他 Windows 应用可以直接嵌入这个终端控件,就像嵌入一个 WebView 一样。这思路太妙了——把终端从“应用”变成“组件”,打开了无数集成可能。

安装与使用:比泡面还简单

作为日常使用者,你根本不需要编译源码。安装方式多到挑花眼:

推荐:Microsoft Store

一键安装,自动更新,省心省力。这是微软最希望你用的方式。

备选:winget、Chocolatey、Scoop

如果你是包管理爱好者,下面这条命令就够了:

powershell 复制代码
## 通过 winget 安装 Windows Terminal
winget install --id Microsoft.WindowsTerminal -e

或者用 Chocolatey:

powershell 复制代码
choco install microsoft-windows-terminal

手动安装(GitHub Release)

实在不行,还能从 GitHub 下载 .msixbundle 文件手动安装:

powershell 复制代码
## 手动安装 MSIX 包
Add-AppxPackage Microsoft.WindowsTerminal_<versionNumber>.msixbundle

⚠️ 注意:手动安装不会自动更新,而且可能需要额外安装 VC++ 运行库。

配置自由度:高到离谱

Windows Terminal 的配置文件是 settings.json,你可以自定义:

  • 默认启动的 shell(WSL?PowerShell 7?Git Bash?)
  • 字体(强烈推荐 Cascadia Code,微软专门为终端设计的等宽字体)
  • 颜色方案(内置 dozens 种,还支持导入 iTerm2 主题)
  • 快捷键(比如 Ctrl+Shift+T 开新标签)
  • 透明度、背景图片(是的,你可以在终端背后放一张猫猫图)

虽然 README 里没直接贴配置示例,但官方文档(aka.ms/terminal-docs)里有海量例子。比如设置 WSL 为默认配置:

json 复制代码
{
  "defaultProfile": "{c6eaf9f4-32a7-5fdc-b5cf-066e8a4b1e40}",
  "profiles": {
    "list": [
      {
        "guid": "{c6eaf9f4-32a7-5fdc-b5cf-066e8a4b1e40}",
        "name": "Ubuntu",
        "commandline": "wsl.exe -d Ubuntu",
        "hidden": false
      }
    ]
  }
}

对 Java 开发者的特别价值

你可能会问:“我是写 Java 的,关我什么事?”

关系大了!

  1. 本地开发体验提升:用 WSL2 + Windows Terminal + IntelliJ IDEA,你能在 Windows 上获得接近 macOS/Linux 的开发流。
  2. 调试更高效:多标签页让你同时看日志、跑脚本、查数据库,不用 Alt+Tab 到手抽筋。
  3. 学习系统编程:如果你想了解 Windows 底层(比如 ConPTY 如何桥接 Unix pty),这个项目是绝佳教材。

值得深入学习吗?

如果你只是用户,装上就用,无需深究。

但如果你对系统编程、终端技术、Windows 内部机制感兴趣,这个项目绝对值得 clone 下来读一读。它的代码组织清晰,文档完善,还有详细的 STYLE.mdORGANIZATION.md 指导贡献者。

不过要提醒:编译它需要 VS2022 + Windows 11 SDK + UWP 工作负载,环境配置有点门槛。README 甚至贴心地提供了 winget configure 脚本来一键配环境:

powershell 复制代码
## 从源码构建(PowerShell)
Import-Module .\tools\OpenConsole.psm1
Set-MsBuildDevEnvironment
Invoke-OpenConsoleBuild

微软真是把开发者体验做到极致了。

最后的小吐槽

唯一让我有点不爽的是:它只能在 Windows 10 2004(19041)以上运行。如果你还在用老版本 Windows(比如某些企业环境),那就只能继续忍受老控制台了。不过话说回来,都 2025 年了,该升级了兄弟!

总之,Windows Terminal 不是一个炫技项目,而是一个真正解决开发者 daily pain 的工具。它证明了:即使是微软这样的巨头,也能做出优雅、现代、用户至上的开源软件。

所以,别再用 CMD 了,赶紧去 Microsoft Store 装一个吧!你的手指会感谢你。

最后更新:2025-12-08T13:05:36

评论 (0)

发表评论

blog.comments.form.loading
0/500
加载评论中...