内容预览 ≧∀≦ゞ
Windows终端美化指南:美化你的命令行界面!
引言
在日常开发中,谁不想拥有一个美观又高效的终端界面呢?个性化的终端不仅让操作更顺畅高效,还能为你的工作增添一丝愉悦的体验。本文将手把手教你快速配置 oh-my-posh 和 clink,让你的 PowerShell 和 CMD 焕然一新。配置过程中,我踩了不少坑,经过反复调试才总结出这篇经验分享,希望能帮助你在终端美化的旅程中少走弯路!
先上效果图:
一、准备工作
包管理器:scoop
为什么选择使用 Scoop 安装?
使用 Scoop 作为包管理器来安装开发工具,比如 oh-my-posh
、clink
,相比直接从微软商店安装或下载安装包,有几个明显的优势:
-
更便捷的安装和更新
Scoop 一行命令就能完成安装,既不需要手动下载安装包,也不必逐个步骤操作。安装完成后可以直接运行,更新时也同样简单,只需运行scoop update <package_name>
即可完成。 -
自动配置环境变量
Scoop 会将所有已安装软件的快捷方式放在scoop\shims
文件夹中,并将该文件夹路径自动加入用户的环境变量PATH
中。因此,安装完成后可以直接在终端中使用这些命令,而无需手动配置路径。 -
轻量又优雅
Scoop 将所有软件都集中在用户目录下管理,不会修改系统目录。这种优雅的管理方式避免了对系统的影响,也更易于管理和卸载。 -
简洁的依赖管理
Scoop 能自动安装软件的依赖项,避免了手动下载和配置的麻烦,极大简化了安装过程。
因此,使用 Scoop 不仅能简化安装和更新操作,还减少了配置环境变量的繁琐步骤,是一种方便又优雅的安装方式。
更多关于 Scoop 的介绍与使用技巧,可以参考以下文档:
https://muxiner.github.io/using-scoop/
https://khigh.top/archives/scoop
安装 scoop
-
设置 PowerShell 执行策略
在安装 scoop 之前,需允许 PowerShell 执行脚本。可以在 PowerShell 中执行以下命令:Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
-
安装 scoop
在 PowerShell 中运行以下命令:irm get.scoop.sh | iex
Scoop 安装完成后将自动配置环境变量。在本文中,我们将使用 Scoop 安装所有相关工具(包括
oh-my-posh
和clink
),使整个安装过程更加高效流畅。
确保 scoop\shims
路径已添加到环境变量中(正常情况下会自动添加):
关于 shims 文件夹:scoop 创建的 shims 文件夹用于存放所有已安装应用的快捷方式,使得在命令行中可以直接调用这些程序,而无需指定完整路径。
字体
为了在 oh-my-posh 中正确显示各类图标,我们需要安装支持 Nerd Fonts 的字体。安装方法如下:
- 前往 Nerd Fonts 官方 GitHub 页面 或访问 Nerd Fonts 下载页面 下载 Meslo 或其他字体包。
- 解压下载的文件,并右键安装所有
.ttf
字体文件。 - 在 Windows Terminal 的设置中选择安装的 Nerd Fonts 字体(例如 MesloLGM NF),确保字体正常显示图标。
终端
推荐使用 Windows Terminal 作为默认终端。作为 Windows 11 自带的终端,它在多标签、个性化配置和多终端支持上表现得非常不错,完全能满足日常使用需求。既然系统已经提供了这样一款功能强大的工具,我们大可不必折腾 wezterm 等其他第三方软件了 :)
如果你使用的是 Windows 10 或精简版系统,可能没有预装 Windows Terminal。这种情况下,可以通过微软商店在线安装,或者选择离线安装。
离线安装步骤
- 前往 GitHub Releases 页面 下载
.msixbundle
后缀的安装包(例如,Microsoft.WindowsTerminal_1.11.3471.0_8wekyb3d8bbwe.msixbundle
)。 - 在下载目录中打开 PowerShell,执行以下命令进行安装:
Add-AppxPackage .\Microsoft.WindowsTerminal_1.11.3471.0_8wekyb3d8bbwe.msixbundle
配置 Windows Terminal
找到PowerShell的外观设置
设置文本样式
设置背景图,透明度等
添加启动参数 -nologo
来隐藏 PowerShell 启动时的欢迎信息。这样,启动 PowerShell 时就不会显示欢迎信息。请注意,这个设置仅适用于 PowerShell,而不适用于 CMD。
同样,你可以设置 CMD 的外观,甚至将 CMD 设置为默认启动的终端
二、配置美化 PowerShell
Oh My Posh 是一款适用于多种 shell 环境的自定义提示引擎,它不仅提供灵活且美观的终端提示,还能帮助用户通过函数或变量定制提示字符串,从而提升终端的个性化与工作效率。
安装 oh-my-posh
在 PowerShell 中,使用 scoop
安装 oh-my-posh:
scoop install oh-my-posh
激活 oh-my-posh
为了让 oh-my-posh 在 PowerShell 启动时自动激活,需编辑 PowerShell 配置文件。
-
打开配置文件:
notepad $PROFILE
-
如果找不到
$PROFILE
文件,可以使用以下命令创建:New-Item -Path $PROFILE -Type File -Force
-
在配置文件中添加以下内容以初始化:
oh-my-posh init pwsh | Invoke-Expression
配置主题
查看主题列表
oh-my-posh 提供了多种美观的预设主题。使用以下命令查看所有可用的主题:
Get-PoshThemes
运行该命令后,会显示很多的主题,每个主题的名称会显示在主题的上方。
使用自定义主题
可以在初始化命令中指定自定义主题路径,即在初始化代码后添加--config "$env:POSH_THEMES_PATH\<主题名>.omp.json"
。
以下为完整配置:
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\montys.omp.json" | Invoke-Expression
图标美化
Terminal-Icons 是一个 PowerShell 模块,用于在 Windows 终端中为文件和文件夹添加图标。它基于文件名称或扩展名自动分配图标,若找不到相应的图标,则使用通用图标。
执行以下命令安装该模块:
Install-Module -Name Terminal-Icons -Repository PSGallery
安装后,在 PowerShell 配置文件 ($PROFILE
) 中添加以下行以启用该插件:
Import-Module Terminal-Icons
效果展示:
完成以上操作后,PowerShell 中已启用 oh-my-posh 的美化效果。接下来是一些进阶操作,旨在进一步提升 PowerShell 的使用体验,使其具备类似 Mac 上的 oh-my-zsh 功能,涵盖语法高亮、错误提示、多行编辑、快捷键绑定、自动补全、历史搜索及 Git 扩展显示等:
安装插件模块
安装 PSReadLine
PSReadLine 提供语法高亮、错误提示、多行编辑、键绑定、历史记录搜索等功能,提升命令行体验。
Install-Module PSReadLine
安装 posh-git
posh-git 可以在 PowerShell 中显示 Git 状态信息,并提供 Git 命令的自动补全。
安装命令:
Install-Module posh-git
在 PowerShell 配置文件 ($PROFILE
) 中添加以下行以启用该插件:
Import-Module posh-git
安装 ZLocation
ZLocation 插件类似于 autojump
或 Zsh-z
,通过关键字直接跳转到指定目录,提升效率。
-
安装 ZLocation 插件:
Install-Module ZLocation
-
修改配置文件:
打开 PowerShell 配置文件:
notepad $PROFILE
在文件末尾添加:
Import-Module ZLocation
ZLocation 使用示例
-
查看已知的目录:
z
-
跳转到包含指定字串的目录(支持 Tab 补全):
z doc
-
回到上一个访问的目录:
z -
编辑 PowerShell 配置文件
配置文件的作用是在 PowerShell 启动时运行一些自定义的设置,比如导入模块、设置别名、定义函数等。
以下是我的配置文件,大家可以参考注释根据自己需求修改或者删除:
# 引入所需模块
Import-Module Terminal-Icons
Import-Module PSReadLine
Import-Module posh-git
Import-Module ZLocation
# 初始化 oh-my-posh
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\M365Princess.omp.json" | Invoke-Expression
# 设置编码,避免中文字符乱码
$OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = New-Object System.Text.UTF8Encodin
三、配置美化 CMD
clink 是一款增强 CMD 功能的小工具,支持自动补全、命令历史等功能,极大提升了 CMD 的使用体验。
安装 clink
在 CMD 中直接使用 scoop 安装 clink:
scoop install clink
激活 clink
可以通过 autorun
命令设置 clink 自动运行,并使用 quiet
参数。这样每次启动 CMD 时,clink 会自动启用并禁用启动提示信息:
clink autorun install -- --quiet
使用 quiet
参数前后的效果如下:
(使用前)
(使用后)
启用自动补全
clink 支持 autosuggest
自动补全功能,类似于 shell 中的 zsh 自动建议。可以通过以下命令启用该功能:
clink set autosuggest.enable true
查看配置信息
可以使用以下命令查看当前的 clink 配置信息:
clink info
配置 oh-my-posh 样式
如果希望在 CMD 中同样展示 oh-my-posh 的样式,可以通过 Lua 脚本加载主题。具体步骤如下:
-
创建 Lua 配置文件
在C:\Users\<用户名>\AppData\Local\clink
目录下,新建一个名为oh-my-posh.lua
的文件。 -
加载 oh-my-posh 主题
在文件中写入以下代码,以将 oh-my-posh 的样式应用到 CMD:load(io.popen('oh-my-posh init cmd'):read("*a"))()
-
加载自定义主题
若希望使用自定义主题,可以将命令更新为以下内容:load(io.popen('oh-my-posh init cmd --config="%POSH_THEMES_PATH%\\montys.omp.json"'):read("*a"))()
配置完成后,重新打开 CMD,即可看到应用了 oh-my-posh 的自定义提示符样式。
使用 CMD 脚本预先配置 Alias
通过 Clink,可以在 CMD 中为常用的 Linux 命令(如 ls
、rm
等)创建别名(alias),帮助习惯 Linux 命令行的用户更轻松地适应 CMD 控制台。
在 Windows 系统上设置 alias 通常使用 doskey
命令,并可以借助 Clink 工具,在 CMD 启动时自动执行脚本来加载这些 alias。默认情况下,Clink 会从 C:\Users\<username>\AppData\Local\clink
目录中查找 clink_start.cmd
文件来进行初始化。
可以在该目录下创建 clink_start.cmd
文件,并添加以下内容:
@echo off
doskey ls=dir
doskey rm=del
doskey cp=copy
doskey mv=move
doskey of=explorer.exe .
保存文件后,这些 doskey
指令将在 CMD 下次启动时自动执行,从而实现 alias 效果。
➤ 参考资料
- https://blog.csdn.net/weixin_72603661/article/details/136279771
- https://www.bilibili.com/read/cv20467382/
- https://halc.top/p/82bd449c
- https://www.cnblogs.com/hongdada/p/16826311.html
最后,再次感谢您阅读本篇文章,如果您对文中内容有任何疑问或建议,欢迎在评论区与我交流!您的点赞和分享将是我继续创作的动力。