Windows Terminal 美化配置指南:从配色、字体到提示符的完整定制

发布时间:2026/10/22 15:11:02
Windows Terminal 美化配置指南:从配色、字体到提示符的完整定制
Windows Terminal 是我用过的所有 Windows 终端工具里最值得花时间去折腾外观的一个。开箱即用的状态就已经很舒服但它真正的价值在于你可以把配色、背景、字体、提示符提示符甚至每个标签页打开时的行为全部按自己的习惯定制。这已经不只是“好看”的问题终端是每天打开上百次的生产力工具一个配色合理、信息层级清晰、操作反馈到位的终端真的能让你做事的心情和效率都上一个台阶。这篇博文我把自己的完整配置思路、关键步骤和踩过的坑全部写下来不管你是刚接触 Windows Terminal 的新手还是已经跑了一段日子想再优化一下的老手应该都能找到能抄作业的内容。1. 为什么值得折腾 Windows Terminal 的外观1.1 从“能用”到“好用”的差距在哪里很多人的终端长期停留在“黑底白字、默认字体、默认光标”的状态能用但绝对谈不上好用。拿 Windows Terminal 来说它默认的配色就已经比传统控制台好不少支持 GPU 加速渲染、多标签页、分屏这些底子都很扎实。但如果你不改配置就无法体验到它真正舒服的一面一套长时间看不刺眼的配色方案、清晰的目录和 Git 状态提示、适合编程的等宽字体、无延迟的渲染滚动。这些细节单独拿出来说都不起眼叠在一起就是“工作起来顺手”和“每次打开都别扭”的区别。我周围不少同行第一次接触美化配置时以为要装第三方插件或者打一堆补丁。其实不需要Windows Terminal 的全部能力都集中在它自带的配置体系里只需要编辑一份 JSON 配置文件。我一开始也被各种博客上的复杂操作吓退过真正跑通了之后才明白核心就三步认识配置文件、选择合适的主题和字体、把提示符工具接入 PowerShell。这几天里积累的认知足够把一台新装系统的终端环境恢复到我自己最舒服的状态。1.2 确认基础环境版本、包管理器和 PowerShell在动手改配置之前先花五分钟确认环境能省下很多排查问题的功夫。第一是确认 Windows Terminal 的版本按下Win键搜索“终端”或者“Terminal”打开应用后在标签页标题栏的下拉菜单里找到“关于”入口也可以直接在终端里执行wt --version查看。我建议至少使用 1.15 以上的版本版本太老的话部分配置字段并不生效比如“在同一目录下打开新终端”这种基础增强功能或者新式配色字段都需要新版支持。第二是确认 PowerShell 的版本。虽然 Windows Terminal 可以运行 CMD、PowerShell、WSL 等多种环境但我的美化方案以 PowerShell 为主因为它对 prompt 提示符定制、模块生态的支持最成熟。本机自带的 Windows PowerShell 5.1 可以跑但强烈建议装 PowerShell 7性能更好、命令兼容性更强。直接在终端里执行winget install --id Microsoft.PowerShell安装完成后在 Windows Terminal 的下拉菜单里就能看到新的 “PowerShell” 配置项以后默认使用它。如果这一步提示包管理器未启用就去系统设置开启 Windows 包管理器相关的开发者选项或者直接从系统应用商店里搜索安装 PowerShell。第三是检查执行策略。PowerShell 默认可能会禁止执行本地脚本后面我们要写入一个初始化脚本所以提前把它设置成允许签名脚本执行Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser这一步作用于当前用户权限范围足够不需要管理员身份执行后会弹提示问你是否确认输入Y回车即可。别小看这三件事一个版本足够新的终端环境、一个 7 以上的 PowerShell、一个允许脚本执行的策略后面每一步都能走得顺。2. 找到并读懂配置文件一切美化的起点2.1 配置文件到底藏在哪里Windows Terminal 的配置全部保存在一个叫settings.json的文件里。大多数情况下你会安装两个“壳”一个是应用商店版的 Windows Terminal另一个可能是解压版或者开源仓库的绿色版。不同的安装方式配置文件路径略有不一致但都遵循一个规律以包名命名的文件夹下的LocalState/settings.json。我常用的快速定位方式是打开 Windows Terminal按下Ctrl ,界面上会弹出一个非常精简的设置窗口。在这个窗口的右下角或者底部工具栏上有一个“打开 JSON 文件”的按钮点一下就会自动用系统默认编辑器打开当前生效的配置文件。这种方式永远不会找错路径适合新手。如果你想手动找一看%LOCALAPPDATA%\Packages\目录下找到一个以WindowsTerminal开头的文件夹进去后找到LocalState/settings.json即可。2.2 settings.json 里必须认识的几个关键字段第一次打开 settings.json 时看到一串嵌套 JSON 可能会有点懵。其实整个文件就三大块profiles、schemes、actions。profiles是当前终端环境的列表和管理区域它内部又分为defaults和list。defaults是全局默认配置写在里面的属性对列表里所有终端生效比如字体、背景图、透明度、光标样式。list是具体每一类终端的定义比如 PowerShell、CMD、WSL 各是一个配置项每个项里都可以覆盖defaults里的设置。我美化时绝大部分颜色、字体、背景配置都写在defaults里这样新加任何终端都会自动继承。schemes是配色方案集合每一个方案是一组颜色定义例如前景色、背景色、光标颜色以及十六种 ANSI 颜色。配置好一个方案后在profiles里通过colorScheme字段引用它的名字。actions是快捷键和命令面板的绑定表例如我们可以把“新建垂直分屏的终端”绑定到CtrlShift2这样顺手的位置。2.3 动手前先做一件事备份配置虽然说 settings.json 修改错了不至于损坏系统但一堆还原不回去的旧配置会非常浪费时间。每一轮改动之前我都会复制一份配置文件到另外的位置比如桌面上的settings.backup.json。Windows Terminal 有一个非常贴心的特性配置文件一旦保存它几乎实时热加载终端界面立刻生效。所以可以放心大胆地改如果哪一步出了视觉效果上的问题直接改回来保存终端马上恢复。我有一次改了背景图之后的路径忘记转义反斜杠结果整个终端一直显示黑色背景排查半天才发现是 Windows 路径分隔符在 JSON 里必须写成\\当时没有备份凭记忆回滚花了不少功夫。从那以后我养成了“每次大改先复制一份”的习惯。这个习惯我真的建议每个人都养成。3. 配色方案与背景设置第一眼的变化3.1 内置主题配色怎么选、怎么微调Windows Terminal 内置的配色方案不算少比如Campbell、One Half Dark、Tango Dark、Solarized Dark等。第一次接触你完全可以直接在设置界面的“配色方案”里点一遍看看效果挑一个顺眼的先跑起来。我刚开始潮流时尚地挑了一个高饱和度的蓝色方案用了两天眼睛很快累。后来才明白一个适合长时间阅读的终端配色背景色应该偏柔和对比度不要刺眼关键字颜色要有明显区隔。一个很简单的评判标准是在终端里大量阅读日志或代码五分钟后眼睛不感觉干涩信息层级不会混乱。如果你的主色调也是高亮色建议先把前景色调低一档亮度把背景色从纯黑调到接近深灰色比如#1e1e1e这种。微调可以在 settings.json 里的schemes字段中直接改。例如创建一个叫MyTheme的方案{ background: #1E1E1E, black: #0C0C0C, blue: #569CD6, brightBlack: #6A6A6A, brightBlue: #9CDCFE, brightCyan: #B5CEA8, brightGreen: #608B4E, brightPurple: #C586C0, brightRed: #F14C4C, brightWhite: #F8F8F8, brightYellow: #D7BA7D, cursorColor: #F8F8F8, cyan: #4EC9B0, foreground: #D4D4D4, green: #4EC9B0, name: MyTheme, purple: #C586C0, red: #F14C4C, selectionBackground: #264F78, white: #D4D4D4, yellow: #D7BA7D }然后在profiles.defaults中引用{ profiles: { defaults: { colorScheme: MyTheme } } }保存后终端马上变脸。3.2 背景图、透明度与模糊效果背景图是很多人美化路上的一步大棋。Windows Terminal 支持常见的 png、jpg、gif 等格式把背景图设置在profiles.defaults的backgroundImage字段即可。路径写法最容易踩坑JSON 字符串里的反斜杠需要双写例如D:\\Pictures\\terminal-bg.jpg。如果是相对路径建议绝对路径不然不同终端工作目录一变就加载不到。背景相关还有几个关键参数backgroundImageOpacity背景透明度取值范围 0 到 10.5 左右是比较舒适的中间值既能看到背景又不影响文字识别。backgroundImageAlignment背景对齐方式一般用center或fill。fill会拉伸图片铺满整个窗口适合高清大图center适合比例合适、不需要拉伸的图。backgroundImageOpacity和acrylicOpacity是两个不同的概念。前者控制图片本身的透明度后者控制窗口磨砂玻璃的透明效果。如果你更喜欢毛玻璃质感可以把useAcrylic设为true再设置opacity在 0.5 到 0.8 之间。需要注意的是开启 Acrylic 之后GPU 渲染负载会略高低配机器上的长时间使用时偶尔会出现拖影那时就可以关掉只用纯色背景。我有很长一段时间利用背景图放一张低饱和度的景观图透明度调到 0.15保留了一点点环境氛围又不干扰前景内容。后来发现背景图还有一个好处不同项目、不同工作环境可以用不同的背景图一眼就能区分开当前是在哪个项目终端下操作这个实用性意外地重要。3.3 光标样式与行高字距的细节调整很多人忽略光标和行距但这两个细节对观感影响非常大。光标有三种常用模式vertical bar、underline、block。我个人最喜欢vertical bar因为它既不遮挡字符又能把当前输入位置标得很清楚。在profiles.defaults里设置{ cursorShape: bar, cursorHeight: 30 }cursorHeight只在bar模式下生效表示光标长度占字号高度的百分比30 左右是比较舒服的短光标。行高和字距放在一起调可以避免文字挤成一团。Windows Terminal 里没有像编辑器那样精确的“行距”选项但可以通过 CSS 化的lineHeight字段控制。不同版本字段名可能有区别一般来说{ padding: 8, 8, 8, 8, lineHeight: 1.1 }lineHeight默认为 1稍微提高到 1.1 到 1.2日志阅读体验会明显变好。四个方向的padding给终端里的文字留出呼吸感特别是靠近滚动条的右边距太贴边会让视觉上显得很乱。4. 提示符与字体让终端“活”起来4.1 为什么一定要装 Nerd Font 字体美化终端这件事里一半以上的回报来自于字体。终端信息量大一个设计合理、字符区分度高的等宽字体能显著降低阅读成本。Windows Terminal 默认使用的是系统等宽字体但很多定制化的图标字符它是显示不了的会变成一个个豆腐块。这里就要提到 Nerd Font 字体家族了。它的特点是在常规等宽字体的基础上集成了大量私有区 Unicode 字符包括各种平台图标、Git 状态图标、文件夹图标、箭头提示符等。提示符美化工具渲染出来的那些小图标就是靠这套字体支持的。我推荐优先选择 Nerd Font 官方字体库里的主流款比如CaskaydiaCove Nerd Font基于 Cascadia Code 增强、JetBrainsMono Nerd Font在 JetBrains Mono 基础上加图标、FiraCode Nerd Font。安装字体很简单下载对应字体的压缩包解压后选中.ttf字体文件右键选择“安装”。这一步是“当前用户”安装Windows Terminal 需要重启后才会刷新字体列表。启动后在设置界面或者 settings.json 里把默认字体的fontFace改成刚安装的字体名称{ font: { face: CaskaydiaCove Nerd Font, size: 13 } }注意font.size因人而异13 到 14 是比较通用的字号太小了字符辨识度低太大了信息量反而变少。我试过 16看起来很舒服但每屏能看到的日志行数少了一截最终固定在 13。4.2 用 oh-my-posh 接管 PowerShell 提示符提示符可视化工具里我目前最认可的是 oh-my-posh。它不像老牌的 posh-git 那样只给 Git 仓库加状态而是聚合了当前目录、Git 分支、Python 虚拟环境、命令执行时间、上条命令是否成功等多种信息排版样式调好之后信息密度非常高。安装方式推荐直接用包管理器winget install --id JanDeDobbeleer.OhMyPosh -e安装完成后先启用它。打开 PowerShell 的配置文件初始化文件notepad $PROFILE如果提示找不到该路径先执行New-Item -ItemType File -Path $PROFILE -Force创建它。在文件里写入一行oh-my-posh init pwsh --config $env:USERPROFILE\.poshthemes\mytheme.omp.json | Invoke-Expressionmytheme.omp.json是自定义主题文件的位置。如果暂时没有自己的主题可以先不指定--config直接用默认主题。但为了更好的效果我还是推荐去主题列表里挑一个。把主题文件下载到本地后我们要在 Windows Terminal 的 settings.json 里把 PowerShell 终端的字体设置为对应的 Nerd Font。这是关键一步不设置的话主题里的图标会全部变成方块。另外默认背景和提示符主题互相叠加时可能略显混乱所以我会在 oh-my-posh 主题文件里把transparency打开或者直接在 Windows Terminal 里关闭该 profile 的透明背景。4.3 主题选择与自定制思路oh-my-posh 有很多内置主题常用的有jandedobbeleer、powerlevel10k_rainbow、montys、atomic等。我一开始用的是powerlevel10k_rainbow它把 Git 状态、执行时间、目录路径用不同颜色分开信息非常清楚视觉效果偏活泼。但后来发现连续输出日志时彩虹色有点打扰注意力于是换成了montys整体色调统一只有关键状态用不同的色块突出更像“专注工具”的气质。如果你对现有主题都不太满意可以直接编辑主题 JSON它本质上是一个对象列表每一个对象代表一个 segment比如path当前路径、gitGit 状态、executiontime命令耗时、exit退出码。你只需要调整它们的顺序和样式就可以拼出属于自己的提示符。我改造过的一个细节是把exit段放在提示符最后一旦上一条命令非零退出就显示为红底这个习惯在写脚本时救过我很多次。为了让提示符不占用过多纵向空间我建议把每个 segment 的template改得紧凑些只保留最有用的内容目录、分支、变化状态、耗时。提示符不是展示工具所有信息都是为了快速决策服务的。4.4 让 PowerShell 每次都加载配置把 oh-my-posh 初始化命令写入$PROFILE后每次新开终端都会自动执行。这里有个注意点如果你的 Windows Terminal 默认启动的是 CMD那上面的配置不会生效必须在配置文件里把默认 profile 改为 PowerShell。在 settings.json 的profiles里找到 PowerShell 对应的 GUID然后把最顶层的defaultProfile改成这个 GUID 即可。也可以在设置界面的“启动”里直接把默认配置文件下拉菜单改成 PowerShell。我还习惯在$PROFILE里顺手加几个指令别名比如用ll代替Get-ChildItem、用..返回上一级。这些和美化没有直接关系但会让终端使用体验非常连贯。注意不要把大量启动逻辑一股脑丢进$PROFILE加载时间会被拖长后面在问题排查部分我会展开讲。5. 操作效率优化快捷键、启动目录与右键菜单5.1 把 Windows Terminal 设置为默认终端应用在 Windows 10 和 11 上可以把 Windows Terminal 设置为系统的默认终端应用。设置方法打开 Windows Terminal进入设置界面找到“启动”分类把“默认终端应用程序”从“让 Windows 决定”改成“Windows Terminal”。这个操作做完之后以后在任意文件夹地址栏输入cmd或者按Win R运行命令弹出的都是 Windows Terminal而不是古老的 conhost 窗口。我自己在配置好这一项之后体验提升非常明显感觉整个系统的入口都统一到了同一个工具里。5.2 启动目录怎么设置最顺手默认情况下新开的 PowerShell 一般落在C:\Users\你的用户名这个$HOME目录。但很多人的代码仓库集中在某个固定磁盘路径下每次打开终端都要手动cd很浪费操作。可以在profiles.defaults里设置startingDirectory{ startingDirectory: D:\\Code }注意这里同样是双反斜杠写法。如果你经常在不同项目文件夹上右键打开终端那不用设置全局固定目录系统会继承当前文件夹作为启动目录只有手动打开 Windows Terminal 标签页时才用到这个默认值。5.3 分屏与快捷键几何效率的提升Windows Terminal 的分屏能力可能是它比传统控制台最大的优势。按下Alt Shift D可以垂直分屏按下Alt Shift Plus水平分屏这比开多个窗口来回切换要高效太多。我日常写代码的习惯是左边窗口跑编辑器相关的日志右边窗口跑构建或者 Git 操作两个窗格互不干扰。快捷键可以在actions里自定义。比如把“垂直分屏”绑定到CtrlShift2把“关闭当前窗格”绑定到CtrlShiftW每个动作其实对应一个命令。一个简单的自定义示例{ command: { action: splitPane, split: right }, keys: ctrlshift2 }保存之后终端立刻可以按新快捷键执行。快捷键的设计遵循一个原则最频繁的操作才值得占用组合键低频操作用命令面板CtrlShiftP查找就够了。5.4 右键菜单集成与命令面板Windows Terminal 还自带了一个“在终端中打开”的集成体验但依赖默认终端设置。如果前面已经设置了默认终端为 Windows Terminal那么在一个文件夹的空白处点击右键会出现“在终端中打开”的菜单项点击后新开的终端会把当前文件夹作为启动目录。如果你用的是 Windows 11右键菜单默认折叠在底部需要在“显示更多选项”里找到这一项。命令面板是 Windows Terminal 里非常实用的功能按下CtrlShiftP可以呼出搜索框里输入关键字就能快速执行各种命令比如切换配色主题、复制当前路径、打开设置 JSON 文件。这个面板把终端的所有内置功能做成了“可搜索”的形式我强烈建议所有用户都花几分钟浏览一遍里面有哪些功能很多时候你以为做不到的事情其实只是没找到入口。6. 配置同步与常见问题排查6.1 怎么把配置同步到多台设备多台设备之间同步配置最常见也最笨的方法是手动拷贝 settings.json 和主题文件。不过 settings.json 里可能包含机器相关的路径比如启动目录、背景图路径直接在另一台设备上复用之前要改掉这些绝对路径。稍微进阶一点的做法是使用符号链接把真正的配置文件放在一个云同步目录里然后在系统配置目录里建立链接。创建符号链接需要管理员权限用管理员身份打开终端执行New-Item -ItemType HardLink -Path $env:LOCALAPPDATA\Packages\WindowsTerminal\LocalState\settings.json -Target D:\sync\terminal\settings.json硬链接和复制不一样它指向同一个文件在任意一端修改另一端即同步生效。使用云同步目录时注意避免两台机器同时编辑造成冲突但一般来说配置文件这种体积小、修改频率低的内容冲突概率很低。6.2 字体变“豆腐块”、图标乱码怎么办这是美化过程中遇到最多的问题几乎每个人都有过一两次。核心原因就一个当前终端的字体并没有设置为对应的 Nerd Font。常见的情况是改了 Windows Terminal 的默认字体但defaults被某个 profile 自己的fontFace覆盖了或者是只把字体安装到了当前用户但终端进程是以管理员权限运行的读取不到当前用户的新字体。排查思路按顺序检查先确认字体确实已安装再到 Windows Terminal 设置界面里确认该 profile 的字体名称是否完整最后把终端完全重启后再看效果。有一种易忽视的情况oh-my-posh 主题里某些特殊图标是超出常见 Nerd Font 范围的选款较新的 Nerd Font 可以解决大部分旧版本字体如果有阶段性的图标更新下载替换即可。6.3 终端启动很慢问题出在哪儿启动慢多半和$PROFILE里的初始化脚本有关。我最开始把所有能用到的模块和别名全塞进初始化脚本结果每次打开 PowerShell 都要等两三秒非常难受。排查方法很简单给终端启动计时。先用纯净的 CMD再用 PowerShell对比启动速度。如果是 PowerShell 慢把$PROFILE里的某些模块初始化逐行注释掉看哪一行是瓶颈。常见的拖慢点包括每次启动都执行oh-my-posh init但没启用缓存、导入了体积较大的模块、执行了网络请求或者远程脚本。oh-my-posh 本身启动很快如果你发现它的初始化命令是瓶颈试试把主题文件--config参数明确指向本地绝对路径避免每次启动去搜索路径。Windows Terminal 新版本还有“启动性能”改进留意保持版本更新即可。6.4 颜色看起来不对怎么排查配色覆盖关系终端颜色不对的根源一般出在“叠加覆盖”上。Windows Terminal 的设置层级是全局默认 → profile 默认 → 该 profile 的单独配置。如果在profiles.defaults里设置了colorScheme但在 PowerShell 这个 profile 的列表项里又单独指定了另一个colorScheme生效的一定是后者。排查时先看当前 profile 的配置项里是否覆盖了配色、字体、透明度等字段。另一个容易踩坑的是 oh-my-posh 主题外观与配置颜色不协调。比如主题里有段background色块而终端窗口本身又是半透明背景两者叠在一起会显得很脏。解决方案是在主题 JSON 里把transparency相关字段调成与底色一致或者在 Windows Terminal 里关闭该 profile 的 Acrylic 效果我最终选择了后者视觉稳定很多。6.5 配置乱了想恢复最快的办法是什么最省心的恢复方案是你准备好了备份文件直接覆盖回去即可。如果没有备份可以在设置界面找到“重置”相关入口Windows Terminal 提供了“重置为默认设置”的操作会删除当前配置并重新生成一个默认的 settings.json。这个操作会丢失所有自定义但也好过在混乱的文件里找到失败的头疼。如果你做了配色、背景等多层叠加的深度定制强烈建议在完成一个阶段的修改后主动导出一次设置存档放到安全位置。恢复后如果部分命令行工具的颜色看起来还是不对检查一下是不是系统层面的 conhost 兼容问题可以通过在 profile 的experimental.retroTerminalEffect这类实验性效果全关掉来排除。7. 一套可复用的参考配置直接照着改也能用说了这么多最后放一个我当前正在用的精简版配置片段。它不冗余但覆盖了配色、背景、字体、启动目录和默认 profile 切换。你完全可以直接把下面这些字段合并到自己的 settings.json 对应位置。{ defaultProfile: {574e775e-4f2e-5b96-ac1e-a1242fbf3e1c}, profiles: { defaults: { colorScheme: MyTheme, font: { face: CaskaydiaCove Nerd Font, size: 13 }, opacity: 90, cursorShape: bar, cursorHeight: 30, padding: 8, 8, 8, 8 }, list: [ { guid: {574e775e-4f2e-5b96-ac1e-a1242fbf3e1c}, name: PowerShell, source: Windows.Terminal.PowershellCore, startingDirectory: D:\\Code } ] }, schemes: [ { name: MyTheme, background: #1E1E1E, foreground: #D4D4D4, cursorColor: #F8F8F8, black: #0C0C0C, red: #F14C4C, green: #4EC9B0, yellow: #D7BA7D, blue: #569CD6, purple: #C586C0, cyan: #4EC9B0, white: #D4D4D4, brightBlack: #6A6A6A, brightRed: #F14C4C, brightGreen: #608B4E, brightYellow: #D7BA7D, brightBlue: #9CDCFE, brightPurple: #C586C0, brightCyan: #B5CEA8, brightWhite: #F8F8F8 } ] }如果你用自己的 GUID就把defaultProfile里的值替换成实际 PowerShell profile 的 GUID 即可。创建新终端配置时Windows Terminal 会自动生成一个 GUID。整个配置的核心思路就一句话把全局默认项集中管理颜色主题独立成块具体终端只设置各自需要的覆盖项。我这里其实有一个很关键的选择值得解释为什么把startingDirectory写在具体 profile 上而不写在defaults里。因为defaults会对所有终端生效CMD 或者 WSL 的启动目录也会被强制指定如果它们依赖各自的默认路径就会出现混乱。写在具体 profile 上各管各的符合配置隔离的原则。在实际使用中你会发现这套配置并不像一个“花哨的玩具”而是一个能长期稳定工作的日常环境。透明度提高到 90% 而不是用 Acrylic是为了避免 GPU 渲染导致的偶尔拖影字体选择 CaskaydiaCove Nerd Font是在字符清晰度和图标支持之间取得平衡的结果。这些选择不一定适合所有人但理解它们背后的取舍逻辑比直接复制配置更重要。接下来如果你在某个环节卡住回头看前面每一节的细节基本都能找到对应的解决办法。