写点什么

Windows Terminal - 现代化、功能丰富的终端应用

作者:qife
  • 2025-06-30
    福建
  • 本文字数:1397 字

    阅读完需:约 5 分钟

Windows Terminal - 现代化终端应用

项目标题与描述

Windows Terminal 是一个现代化、功能丰富的终端应用程序,适用于命令行工具和开发者。它支持多标签、窗格、Unicode 和 UTF-8 字符、GPU 加速文本渲染等功能,提供了高度可定制化的用户体验。


核心功能包括:


  • 多标签和窗格管理

  • 自定义主题和配色方案

  • GPU 加速的文本渲染

  • 完整的 Unicode 支持

  • 可配置的键绑定和操作

功能特性

核心功能

  • 多标签和窗格:支持同时打开多个终端会话,并可通过窗格分割窗口

  • 自定义配置:通过 JSON 文件高度可配置的外观和行为

  • GPU 加速渲染:提供流畅的文本渲染体验

  • Unicode 支持:完整支持 Unicode 字符和 UTF-8 编码

  • 命令面板:快速访问命令和操作的集中式界面

独特价值

  • 现代化 UI:相比传统 cmd.exe 提供更现代的用户体验

  • 开源开发:完全开源,社区驱动开发

  • 跨平台一致性:提供类似 Linux/macOS 终端的体验

安装指南

系统要求

  • Windows 10 版本 18362.0 或更高

  • 支持 DirectX 10 或更高版本的 GPU

安装方法

  1. Microsoft Store(推荐)


   winget install Microsoft.WindowsTerminal
复制代码


  1. 手动安装

  2. 从 GitHub Releases 页面下载最新 MSIX 包

  3. 双击安装或使用 PowerShell:


     Add-AppxPackage Microsoft.WindowsTerminal_<version>.msixbundle
复制代码


  1. 开发构建


   git clone https://github.com/microsoft/terminal.git   cd terminal   .\tools\razzle.cmd   bcz
复制代码

使用说明

基础使用

  1. 打开新标签页:


   { "command": { "action": "newTab" }, "keys": "ctrl+shift+t" }
复制代码


  1. 垂直分割窗格:


   { "command": { "action": "splitPane", "split": "vertical" }, "keys": "alt+shift+plus" }
复制代码


  1. 切换标签页:


   { "command": { "action": "nextTab" }, "keys": "ctrl+tab" }
复制代码

配置文件示例

{  "profiles": {    "defaults": {      "fontFace": "Cascadia Code",      "colorScheme": "One Half Dark"    },    "list": [      {        "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",        "name": "Windows PowerShell",        "commandline": "powershell.exe",        "hidden": false      }    ]  }}
复制代码

核心代码

终端输入处理

// 处理键盘输入的示例代码bool Terminal::SendKeyEvent(const WORD vkey,                           const DWORD modifiers){    if (_pfnKeyEvent)    {        return _pfnKeyEvent(vkey, modifiers);    }    return false;}
复制代码

VT 序列解析

// VT序列解析器状态机void StateMachine::ProcessString(const std::wstring_view string){    for (auto ch : string)    {        switch (_state)        {        case State::Ground:            if (ch == '\x1b') _state = State::Escape;            else _action.Execute(ch);            break;        case State::Escape:            if (ch == '[') _state = State::CsiEntry;            // ...其他状态转换        }    }}
复制代码

窗格管理

// 创建新窗格std::shared_ptr<Pane> TerminalApp::CreateNewPane(    const GUID& profileGuid,    const winrt::TerminalApp::SplitDirection splitDirection){    auto newPane = std::make_shared<Pane>(profileGuid);    if (splitDirection == SplitDirection::Right)    {        _rootPane->SplitVertical(newPane);    }    return newPane;}
复制代码


更多精彩内容 请关注我的个人公众号 公众号(办公 AI 智能小助手)公众号二维码


办公AI智能小助手


用户头像

qife

关注

还未添加个人签名 2021-05-19 加入

还未添加个人简介

评论

发布
暂无评论
Windows Terminal - 现代化、功能丰富的终端应用_windows_qife_InfoQ写作社区