【保姆级教程】使用 oh-my-posh 和 clink 打造个性化 PowerShell 和 CMD

Windows终端美化指南:美化你的命令行界面!


引言

在日常开发中,谁不想拥有一个美观又高效的终端界面呢?个性化的终端不仅让操作更顺畅高效,还能为你的工作增添一丝愉悦的体验。本文将手把手教你快速配置 oh-my-posh 和 clink,让你的 PowerShell 和 CMD 焕然一新。配置过程中,我踩了不少坑,经过反复调试才总结出这篇经验分享,希望能帮助你在终端美化的旅程中少走弯路!

先上效果图:
在这里插入图片描述
在这里插入图片描述


一、准备工作

包管理器:scoop

为什么选择使用 Scoop 安装?

使用 Scoop 作为包管理器来安装开发工具,比如 oh-my-poshclink,相比直接从微软商店安装或下载安装包,有几个明显的优势:

  • 更便捷的安装和更新
    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
  1. 设置 PowerShell 执行策略
    在安装 scoop 之前,需允许 PowerShell 执行脚本。可以在 PowerShell 中执行以下命令:

    Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
    
  2. 安装 scoop
    在 PowerShell 中运行以下命令:

    irm get.scoop.sh | iex
    

    Scoop 安装完成后将自动配置环境变量。在本文中,我们将使用 Scoop 安装所有相关工具(包括 oh-my-poshclink),使整个安装过程更加高效流畅。

在这里插入图片描述

确保 scoop\shims 路径已添加到环境变量中(正常情况下会自动添加):

在这里插入图片描述

关于 shims 文件夹:scoop 创建的 shims 文件夹用于存放所有已安装应用的快捷方式,使得在命令行中可以直接调用这些程序,而无需指定完整路径。

字体

为了在 oh-my-posh 中正确显示各类图标,我们需要安装支持 Nerd Fonts 的字体。安装方法如下:

  1. 前往 Nerd Fonts 官方 GitHub 页面 或访问 Nerd Fonts 下载页面 下载 Meslo 或其他字体包。
  2. 解压下载的文件,并右键安装所有 .ttf 字体文件。
  3. Windows Terminal 的设置中选择安装的 Nerd Fonts 字体(例如 MesloLGM NF),确保字体正常显示图标。

终端

推荐使用 Windows Terminal 作为默认终端。作为 Windows 11 自带的终端,它在多标签、个性化配置和多终端支持上表现得非常不错,完全能满足日常使用需求。既然系统已经提供了这样一款功能强大的工具,我们大可不必折腾 wezterm 等其他第三方软件了 :)

如果你使用的是 Windows 10 或精简版系统,可能没有预装 Windows Terminal。这种情况下,可以通过微软商店在线安装,或者选择离线安装。

离线安装步骤
  1. 前往 GitHub Releases 页面 下载 .msixbundle 后缀的安装包(例如,Microsoft.WindowsTerminal_1.11.3471.0_8wekyb3d8bbwe.msixbundle)。
  2. 在下载目录中打开 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 配置文件。

  1. 打开配置文件:

    notepad $PROFILE
    
  2. 如果找不到 $PROFILE 文件,可以使用以下命令创建:

    New-Item -Path $PROFILE -Type File -Force
    
  3. 在配置文件中添加以下内容以初始化:

    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 插件类似于 autojumpZsh-z,通过关键字直接跳转到指定目录,提升效率。

  1. 安装 ZLocation 插件:

    Install-Module ZLocation
    
  2. 修改配置文件:

    打开 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 脚本加载主题。具体步骤如下:

  1. 创建 Lua 配置文件
    C:\Users\<用户名>\AppData\Local\clink 目录下,新建一个名为 oh-my-posh.lua 的文件。

  2. 加载 oh-my-posh 主题
    在文件中写入以下代码,以将 oh-my-posh 的样式应用到 CMD:

    load(io.popen('oh-my-posh init cmd'):read("*a"))()
    
  3. 加载自定义主题
    若希望使用自定义主题,可以将命令更新为以下内容:

    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 命令(如 lsrm 等)创建别名(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 效果。


➤ 参考资料

最后,再次感谢您阅读本篇文章,如果您对文中内容有任何疑问或建议,欢迎在评论区与我交流!您的点赞和分享将是我继续创作的动力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值