我想每一个程序员都需要一个既好用又美观的终端,因为这是每天都高频使用的工具,配置好了既赏心悦目,又能提高效率,因此我会在这篇 Blog 里面详细介绍我是如何配置的。
首先这是我的电脑:

如果你也是 win 11,你可以用这段代码来查阅自己的电脑配置:
$cs = Get-CimInstance Win32_ComputerSystem
$cpu = Get-CimInstance Win32_Processor
$os = Get-CimInstance Win32_OperatingSystem
$gpu = Get-CimInstance Win32_VideoController
$disk = Get-PhysicalDisk
@"
电脑型号:$($cs.Manufacturer) $($cs.Model)
系统:$($os.Caption) $($os.Version)(Build $($os.BuildNumber))
架构:$($cs.SystemType)
CPU:$($cpu.Name)
内存:$([math]::Round($cs.TotalPhysicalMemory / 1GB)) GB
显卡:$(($gpu.Name -join ';'))
硬盘:$(($disk | ForEach-Object { "$($_.FriendlyName) $([math]::Round($_.Size / 1GB)) GB" }) -join ';')
"@
得知配置之后,我强烈推荐使用 winget 下载一个 Windows Terminal。这比 Windows 原生控制台好用的多。具体安装命令如下:
winget install --id Microsoft.WindowsTerminal -e
安装好后,按 win 并检索「终端」或者在 powershell 里输入 wt 就可以进入了。
然后我使用了 Scoop 来进行下载我需要的一些 CLI tools:
- lazygit:终端中的 Git 交互界面。它把暂存、提交、查看差异、切换分支等常用操作集中起来,适合不想每次都记完整 Git 命令时使用。
- fzf:模糊搜索工具。可以用关键词快速筛选命令历史、文件列表或其他文本候选项;在当前配置中,
Ctrl + R用于搜索历史命令。 - fd:现代化的文件查找工具,可视为更易用、更快的
find替代品。例如fd main可以在当前目录递归查找名称含有main的文件。 - zoxide:智能目录跳转工具。它会根据你平时访问目录的频率和最近使用情况学习习惯,之后只需输入
z 项目名,即可快速跳到常用项目目录。
下载命令如下:
scoop bucket add extras # lazygit 在 Scoop 的 extras 仓库,不在默认的 main 仓库。
scoop install lazygit fzf fd zoxide
安装好后,fd 装好即用,lazygit 也不着急配置。主要来处理一下 zoxide 和 fzf。
先安装 fzf 的 PowerShell 集成模块:
Install-Module PSFzf -Scope CurrentUser
遇到 NuGet 或 PSGallery 的确认提示,输入 Y 即可。
然后打开 PowerShell 7 的个人配置文件:
$profileDir = Split-Path -Parent $PROFILE
New-Item -ItemType Directory -Path $profileDir -Force | Out-Null
if (-not (Test-Path $PROFILE)) {
New-Item -ItemType File -Path $PROFILE -Force | Out-Null
}
notepad $PROFILE
写入:
# fzf:模糊查找文件与历史命令
Import-Module PSFzf
# Ctrl+T:当前目录中模糊选择文件
# Ctrl+R:模糊搜索历史命令
Set-PsFzfOption `
-PSReadlineChordProvider 'Ctrl+t' `
-PSReadlineChordReverseHistory 'Ctrl+r'
# fzf 默认用 fd 枚举文件:快,且排除 .git
$env:FZF_DEFAULT_COMMAND = 'fd --type f --hidden --exclude .git'
$env:FZF_CTRL_T_COMMAND = $env:FZF_DEFAULT_COMMAND
$env:FZF_DEFAULT_OPTS = '--height 45% --layout=reverse --border'
# zoxide:智能目录跳转;保持在配置文件最后
Invoke-Expression (& { (zoxide init powershell | Out-String) })
保存后,执行:
. $PROFILE
然后你的日常 workflow 就变成了:
z leaf # 跳到你最常去、名称最匹配的目录
zi # 用 fzf 交互选择曾访问过的目录
Ctrl+T # 当前目录下模糊选文件,插入命令行
Ctrl+R # 模糊搜索你以前输过的命令
fd main # 快速找名字含 main 的文件
fd -e cpp # 找所有 .cpp 文件
fd -t d build # 找名为 build 的目录
lazygit # 在 Git 仓库内启动
到这里,只是完成了好用。接下来,要想办法让终端变得好看。
我还是使用 Scoop 下载了 Oh My Posh 和图标字体:
scoop install oh-my-posh
oh-my-posh font install meslo
下载好之后,按 Ctrl + , 打开设置,在「默认值」中找到「外观」,在「外观」中找到「字体」。

我选择了 MesloLGM Nerd Font Mono 字体,你可以根据个人喜欢来定制。
然后,我们需要把这些配置写入 powershell,使其生效。在此之前,你可以用这样的命令预览:
$ompTheme = 'jandedobbeleer' #可以选择自己喜欢的主题,具体可在https://ohmyposh.dev/docs/themes寻找
oh-my-posh init pwsh --config $ompTheme | Invoke-Expression
预览之后,运行:
notepad $PROFILE
在
# zoxide:智能目录跳转;保持在配置文件最后
Invoke-Expression (& { (zoxide init powershell | Out-String) })
这段上面一行,写入:
# Minimal Git-aware prompt
oh-my-posh init pwsh --config "jandedobbeleer" | Invoke-Expression
保存后执行:
. $PROFILE
就大功告成了。
当然这只是我个人的配置,美观是更高的追求,好用才是基本的需要,我觉得一切配置还是要自己用的顺手才好,不要过度配置。
虽然有些熟练掌握 toolchain 的高手,操作起来真的很酷,但我是真心做不来。果然还是适合自己的最好。
Hope this helps!