资讯详情

Windows 11 终端美化与配置指南:字体、提示符、配色一步到位

📅 2026/10/21 21:44:12 | 华诺云谱 👁 阅读
Windows 11 终端美化与配置指南:字体、提示符、配色一步到位
Windows 11 开箱自带的“终端”其实已经比过去那个纯黑的控制台好看了不少但默认状态下仍然没什么个性白字、黑底、蓝色高亮路径一长就看不清Git 分支状态得敲命令才知道。我在把开发机彻底重装之后花了两三个晚上把终端从里到外收拾了一遍最后得到的效果简单说就是“更愿意打开它了”。这篇记录适合所有想让 Windows 11 终端变好看、变好用的人无论你是刚接触命令行的新手还是天天泡在终端里的老手按下面的步骤走都能得到一套可以截图、也经得起日常使用的界面。正文会覆盖 Terminal 的底层准备、Nerd Fonts 字体、oh-my-posh 提示符、配色和透明背景以及我实际踩过的坑照做就行。1. 先换底层再谈美化Terminal 与 PowerShell 7 的环境准备1.1 为什么默认的黑色窗口不值得保留Windows 11 虽然默认预装“终端”但不少从旧系统升级上来的机器右键菜单里打开的其实还是老式控制台窗口。两者最直观的区别是标题栏老窗口没有标签页打开第二个终端就是第二个独立窗口新版终端则支持多标签、窗格分屏、独立配色和 GPU 渲染。我见过很多人直接在老控制台里折腾美化结果字体渲染发虚、透明度不支持、图标显示不全最后全部白费。所以第一步不是下载主题而是确认你用的确实是 Windows Terminal。如果你不确定直接在开始菜单搜索“终端”打开后按 CtrlShift1 切到默认标签观察窗口右上角有没有“”号新建标签按钮。没有的话去应用商店搜索“Windows Terminal”安装即可这是免费的应用装完固定到任务栏顺手把老控制台忘掉。1.2 顺手装 PowerShell 7别只用系统自带的 5.1Windows 11 自带的 Windows PowerShell 5.1 是 .NET Framework 时代的产物功能上够用但不舒服语法解析偶尔卡顿、没有并行管道、模块生态也在逐渐转向新版本。PowerShell 7 才是当前官方主推的命令行 shell跨平台、支持 ForEach-Object -Parallel、和三方工具兼容更好。安装方式也很无脑应用商店搜“PowerShell”装稳定版或者打开终端执行winget install PowerShell。装完不需要删掉 5.1两个版本可以共存。关键一步是让所有新终端默认打开 PowerShell 7打开 Windows Terminal按 Ctrl逗号 进入设置。左侧“启动”页把“默认配置文件”从 Windows PowerShell 改成 PowerShell 7 的配置文件如果没出现在列表里重启一次 Terminal 再进设置。顺手把“启动目录”设为你的工作区目录比如 D:/work这样每次开终端都直接落在常用位置。这一步不打底后面所有美化和配置都会落在 5.1 上来回切 shell 会让心态崩掉。我见过最典型的场景是$PROFILE里写的初始化脚本明明生效了关掉终端重开又没效果——其实就是默认配置文件还是 5.1脚本写进了 7 的 Profile而窗口打开的是旧 shell。1.3 settings.json之后所有美化的“主战场”Windows Terminal 的配置分两层图形界面的“设置”窗口只能改一部分真正的完整配置在 settings.json 里。打开方式设置窗口右下角有个“打开 JSON 文件”按钮或者直接在终端里按 CtrlShift逗号。整个文件最核心的是profiles.defaults这一段所有配置文件共用的默认项都写在里面之后要加的字体、配色、透明度、光标样式全部往这放而不是单独改某一个 profile。养成先在这层写默认值的习惯后面切换默认 shell、新建 profile 时都不会重复配置。这段最后再提醒一个容易忽略的点settings.json 是 JSON 格式注释是不被支持的所以不要像以前的我一样图省事往里面塞//注释保存后终端会自动重写文件格式错误时甚至会弹 schema 错误提示。改之前先看一眼括号是否成对否则报错时找半天。2. 字体没选对美化就输了一半Nerd Fonts 的安装和配置2.1 提示符图标为什么总显示成方框装完提示符美化工具后最常见的失败现场是路径和 Git 信息都出来了但每个字段前都有一个口字占位符整个提示符像一张打码图。原因不是工具装错了而是字体里缺少图标字形。现代提示符工具大量使用 Unicode 私用区的图标字符比如三角形箭头、文件夹、分支符号。普通字体比如系统自带的等线、雅黑甚至很多开发者常用的等宽字体都没有定义这些码位的字形。系统渲染不出来时不会自动到别的字体里去补齐终端场景下字体回退非常保守于是直接输出方框或空白。解决办法只有一个装一套 Nerd Fonts。它把常见图标批量合入到等宽字体里等于给字体“打了图标补丁”。2.2 字体怎么选、去哪下、怎么装Nerd Fonts 是一个开源项目官网发布页会按字体系列打包。目前社区里用得比较多的几款字体系列特点适合谁CaskaydiaCove Nerd Font由系统字体族衍生圆润清晰自带英文连字喜欢系统字体手感、想省事的人MesloLGM Nerd Font经典开发字体字形辨识度高追求稳定、对等宽敏感的人FiraCode Nerd Font带代码连字看起来有“编程感”喜欢连字效果的人下载时认准全名里带“Nerd Font”的包不要只装原版字体。下载下来一般是压缩包解压后有多个 ttf/otf 文件右键选择“为所有用户安装”。装完记下字体完整名称这一步很多人会漏在系统字体设置里查看该字体名称往往比你想的更长比如是 CaskaydiaCove Nerd Font不是 Caskaydia 也不是 Cove。2.3 在 Terminal 里启用字体并避开误区打开 settings.json在profiles.defaults里加一段 font{ profiles: { defaults: { font: { face: CaskaydiaCove Nerd Font, size: 11, weight: light } } } }face必须和系统里显示的字体名称一字不差写错不会报错而是静默回退到默认字体图标继续显示方框。size按屏幕分辨率和个人偏好调weight可以选 light、normal 或 bold。容易踩的误区有两个。第一个是只改了某个具体 profile 的字体其他 profile 仍然用旧字体提示符换到 Windows PowerShell 标签页就崩。建议统一写在 defaults 里让所有配置共用。第二个是终端开着的时候改了字体重新加载后还是老样子——Windows Terminal 对字体变化的生效有延迟最彻底的办法是直接把所有终端标签全部关掉再重新打开比在设置界面反复切换靠谱得多。3. 提示符是每次打开终端都要看的东西oh-my-posh 配置体验3.1 为什么我选 oh-my-posh 而不是 starship现在提示符工具就两类主流oh-my-posh 和 starship。starship 是 Rust 写的速度飞快配置用 TOML跨 shell 统一性好oh-my-posh 同样具备跨平台能力但在 Windows 上的集成深度更好安装、主题、文档都更贴近 Windows 用户的使用习惯。两者对比如下对比项oh-my-poshstarship配置格式JSONTOML内置主题几十套现成主题偏少社区分享多Windows 集成对 PowerShell 场景适配好通用性强自定义复杂度直接改 JSON直观TOML 描述简单但类型多我最终选了 oh-my-posh原因很主观想快速换风格时它的主题库够大几乎不用自己从头写想深度自定义时JSON 的结构对我而言比 TOML 更符合直觉。如果你主要在各种 shell 之间切换starship 的“一处配置到处用”更香。两者都需要 Nerd Fonts 字体装了字体后随时可以换。3.2 从安装到写进 PowerShell 配置文件的完整三步第一步安装在终端里执行winget install oh-my-posh如果搜索不到先执行winget search oh-my-posh看当前可用的官方包标识再按标识安装。装完后需要重开一个终端窗口让 PATH 生效。不依赖 winget 的话也可以去项目发布页下载便携版压缩包解压后把所在目录加入 PATH效果一样。第二步建立 PowerShell 配置文件。PowerShell 默认不创建 $PROFILE 文件需要手动生成New-Item -ItemType File -Path $PROFILE -Force notepad $PROFILE第三步在文件里加入初始化命令oh-my-posh init pwsh --config $env:POSH_THEMES_PATH\atomic.omp.json | Invoke-Expression保存后重新加载. $PROFILE。如果提示“因为在此系统上禁止运行脚本”说明执行策略拦住了执行一次Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser这条只影响当前用户不会动系统全局设置。重新打开终端提示符应该已经不是原来的PS C:\了。3.3 主题切换和自定义一段提示符想看全部内置主题先执行Get-PoshThemes它会打开一个带预览的页面并列出所有主题文件名。临时切换很简单把 init 命令里--config后面的主题名换掉即可。想要长期固定就写一个自己的配置文件。我一般的做法是把一个内置主题复制到用户目录再改Copy-Item $env:POSH_THEMES_PATH\atomic.omp.json ~/posh/mytheme.omp.json然后在blocks里调整 segments。一个最简单的提示符配置大概长这样{ final_space: true, blocks: [ { type: prompt, alignment: left, segments: [ { type: path, style: powerline, foreground: #89B4FA, background: #313244 }, { type: git, style: powerline, foreground: #A6E3A1, background: #313244 } ] } ] }type是段类型path 显示当前目录git 显示分支和未提交状态style里的 powerline 会生成相邻段之间的斜切箭头这也是很多人一眼看到的那种“有层次”的效果。改完保存更新 init 命令的配置文件路径重新加载即可。配色值我一般直接复用后面章节里安排的终端配色保证提示符和整体界面风格一致。4. 配色、透明度与背景把终端整体观感统一起来4.1 配色方案字段的含义和导入方法提示符定下来后终端底色和文字颜色还是默认的。Windows Terminal 支持完全自定义 ANSI 16 色和亮色变体这套颜色会直接影响终端里命令输出的可读性尤其是 ls、git status 这类带彩色输出的工具。在 settings.json 的profiles.defaults里设置colorScheme字段指定方案名然后在文件顶层的schemes数组里定义方案。我这里贴一份我自己用的{ name: 开发配色, background: #1E1E2E, foreground: #CDD6F4, cursorColor: #F5E0DC, black: #45475A, red: #F38BA8, green: #A6E3A1, yellow: #F9E2AF, blue: #89B4FA, magenta: #F5C2E7, cyan: #94E2D5, white: #BAC2DE, brightBlack: #585B70, brightRed: #F38BA8, brightGreen: #A6E3A1, brightYellow: #F9E2AF, brightBlue: #89B4FA, brightMagenta: #F5C2E7, brightCyan: #94E2D5, brightWhite: #A6ADC8 }注意保存位置它属于顶层数组不在 profiles 里面。background 是底色foreground 是普通文字颜色cursorColor 是光标色后面 16 个字段分别对应终端里各种颜色代码的显示。如果你不想手工填也可以去网络上搜索各式配色方案的 JSON复制进 schemes 数组后把 defaults 里的 colorScheme 名字改成对应 name 即可。看腻了就换 name不改其他配置。4.2 毛玻璃透明度和背景图的取舍很多示例图里“糊糊的”半透明效果来自 Windows Terminal 的 acrylic 材质。在 defaults 里打开{ useAcrylic: true, opacity: 90 }opacity 是整体不透明度百分比数值越小越透明。开启 acrylic 后终端背后会有一层系统级的模糊效果观感确实高级但这玩意在低配机器、远程桌面、或者开了多个高刷新率窗口的机器上会增加渲染负担明显能感觉到拖动窗口变卡。如果只是为了“看得见后面的代码窗口”把 useAcrylic 设为 false只保留 opacity 90也能达到轻微透出背景的效果性能开销小很多。还有一个方向是背景图在 profile 里指定backgroundImage: D:/pics/terminal-bg.png和backgroundImageOpacity: 0.3。背景图适合长时间不移动窗口的固定工作台场景但提示符多数有底色背景图的可视区域其实有限玩多了容易腻。我的建议是二选一要么纯色加合理透明度要么背景图配不透明度拉低两头都要会显得桌面很花。4.3 光标、内边距与其他影响手感的小参数这些不太起眼但对“看了不累”影响很大{ cursorShape: bar, padding: 8, 8, 8, 8 }cursorShape 我推荐 bar也就是细竖线比较接近现代编辑器的光标不喜欢也可以选 block 或 underline。padding 是终端内容到窗口边缘的间距默认四边太贴边文字会显得拥挤给到 8 到 12 像素观感立刻舒展。滚动条如果觉得碍眼也可以在设置界面里改成隐藏视觉更干净不影响功能。这些设置在图形界面也能改但直接写 JSON 更省事重启立刻生效。5. 让装修后的终端更好用补全、分屏、快捷键5.1 别让提示符变成启动负担oh-my-posh 每个终端启动时都会执行一次初始化实测在普通配置下也就是一两百毫秒的差别基本感觉不到。但如果你配的主题里塞了一大堆 segments尤其是 git 段嵌在仓库目录里时每次提示符渲染都要去读 git 状态大仓库里会明显卡顿。排查思路很简单把 init 命令临时改成最简主题对比打开终端和回车后的响应速度如果流畅了就是某些段太重。日常使用我建议保留 path、git、退出码这三个核心段时间、天气、系统负载这类信息放上去通常只是初看新鲜用久了全是噪音。真要在 Windows 上查系统状态有专门的工具不必让每个提示符都背着它们跑。5.2 PSReadLine从“等提示”变成“看提示”美化到这一步界面好看了还差交互体验。PSReadLine 是 PowerShell 自带的命令行编辑增强模块在 PowerShell 7 里已经集成Windows PowerShell 5.1 需要的话也可以安装。它最有价值的功能是历史命令预测提示你刚敲过git commit -m下次再敲git c时它会直接在行内或列表里给出候选。在 $PROFILE 里追加Set-PSReadLineOption -PredictionSource History Set-PSReadLineOption -PredictionViewStyle ListViewPredictionSource 设为 History 表示只从历史命令里预测设为 HistoryAndPlugin 则还能加上来自插件的预测PredictionViewStyle 我选 ListView候选以列表显示在下方方向键选择回车执行和 IDE 的自动补全体验很像。习惯后再用回裸 PowerShell 会觉得效率断崖。5.3 一天能按几十次的快捷键与启动目录Windows Terminal 的快捷键值得专门花十分钟背一下这里列几个我最常用的操作快捷键新建标签页CtrlShiftT水平分屏AltShift-垂直分屏AltShift复制当前窗格AltShiftD关闭当前窗格/标签CtrlShiftW在标签页间切换CtrlTab打开设置 JSONCtrlShift,分屏配合多 profile 非常方便左边一个终端敲命令右边一个开 SSH中间再加一个观察日志。日常我基本不需要鼠标所有操作都在键盘上完成。再加上前面设置的启动目录打开终端就是工作区路径提示符也不再是一长串扫不到头的绝对路径。6. 实测中的几个坑字体失效、Profile 不生效、升级后配置丢失6.1 字体明明装了提示符还是方块这是被问到最多的问题。排查顺序我固定是三步确认终端用的是 Windows Terminal不是老控制台窗口。确认 settings.json 里 defaults 的 font.face 和系统显示字体名称完全一致。关掉所有终端窗口重开一次。第二步最容易栽跟头。系统字体列表里显示的名称有时多一个空格或少一个后缀比如 CaskaydiaCove Nerd Font 写成 Caskaydia Cove Nerd Font一个空格之差终端会静默回退到默认字体。我还遇到过一次字体装完后没有勾选“为所有用户安装”结果终端以管理员权限运行时加载不到当前用户的字体低权限窗口正常、管理员窗口全方框场景非常刁钻。6.2 $PROFILE 改了半天没动静这个坑通常出在 Windows PowerShell 和 PowerShell 7 并存的环境。两者虽然都叫 PowerShell但 $PROFILE 指向的是两个完全不同的文件5.1 对应 WindowsPowerShell 目录7 对应 PowerShell 目录。你如果在 7 的 Profile 里配好了 oh-my-posh但终端默认打开的却是 5.1那看起来就是“改了没生效”。遇到这种情况先在终端里执行echo $PROFILE看当前 shell 的 Profile 路径再用Test-Path $PROFILE检查文件是否存在不存在就New-Item -ItemType File -Path $PROFILE -Force创建。然后想清楚一件事你的默认配置文件是哪个 shell就把初始化写进哪个 shell 的 Profile。两个都写也不是不行但维护起来很烦我最后只保留 PowerShell 7清掉了 5.1 上的那些配置。6.3 大版本更新后配置被覆盖或丢失Windows Terminal 和 oh-my-posh 都迭代得快大版本更新后偶发配置“部分丢失”是真实存在的。最典型的两种表现一是 settings.json 的 schema 版本升级终端提示文件有错误把自己不认识的字段删掉二是 oh-my-posh 更新后某个内置主题文件路径变化init 命令指向的主题不存在提示符退回默认。应对方式只有一个随时备份。我习惯把 settings.json、PowerShell 的 $PROFILE、自定义的 omp.json 三个文件扔进同一个备份目录每次大改动后复制一份。Windows 更新前也建议手动备份一次事实证明远比想象中容易触发。6.4 小技巧让配置可迁移最后分享一个让我省了很多事的做法不要依赖终端图形界面去改设置所有能落进 JSON 的都在 JSON 里管理。这样换机器时把三个文件拷贝过去重新装好 Terminal、PowerShell 7、Nerd Fonts、oh-my-posh再执行一遍初始化命令十分钟内就能复现一套一模一样的终端环境。我目前的最终组合是CaskaydiaCove Nerd Font、oh-my-posh 的自定义主题、“开发配色”方案、90 透明度整个界面统一、响应快用了一个多月没有想再改回去的冲动。这个内容后续还可以扩展的方向是加自动更新的脚本、把配置纳入版本管理、给不同项目设置不同的提示符样式。但先把这一步做好终端就已经从“能用的黑色窗口”变成“每天都想打开的工作台”了。
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑