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

news2024/11/5 23:04:34

内容预览 ≧∀≦ゞ

  • 终端美化指南—— oh-my-posh 和 clink 篇
    • 引言
    • 一、准备工作
      • 默认终端:Windows Terminal
        • 离线安装步骤
      • 包管理器:scoop
        • 为什么选择使用 Scoop 安装?
        • scoop 安装
      • 字体下载
    • 二、配置 Windows Terminal
    • 三、配置 oh-my-posh
      • 安装
      • 激活 oh-my-posh
        • 编辑 PowerShell 配置文件
      • 配置主题
        • 查看主题列表
        • 使用自定义主题
    • 四、配置 clink
      • 安装
      • 激活 clink
        • 设置 clink 自动运行
        • 启用自动补全
        • 查看 clink 配置
      • 配置 oh-my-posh 样式在 CMD 中显示
      • CMD 的其他增强操作

终端美化指南—— oh-my-posh 和 clink 篇


引言

在日常开发中,谁不想要一个赏心悦目的终端界面呢?一旦配置得当,不仅让工作环境更加个性化,还能让日常操作更加顺畅高效。本文将手把手带你快速上手 oh-my-posh 和 clink 的配置,让你的 PowerShell 和 CMD 焕然一新。除了详细的步骤,还会贴心分享一些易踩的坑和实用小技巧,希望在美化终端的路上帮你少走弯路。


一、准备工作

默认终端:Windows Terminal

推荐使用 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
    

安装完成后,输入wt即可进入Windows Terminal。

包管理器:scoop

为什么选择使用 Scoop 安装?

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

  • 更便捷的安装和更新
    Scoop 一行命令就能完成安装,既不需要手动下载安装包,也不必逐个步骤操作。安装完成后可以直接运行,更新时也同样简单,只需运行 scoop update <package_name> 即可完成。

  • 自动配置环境变量
    Scoop 将所有安装的软件都自动放在 scoop\shims 文件夹中,并将其路径加入系统环境变量。因此,安装完成后可以直接在终端中使用命令,而无需手动配置路径。

  • 轻量又优雅
    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 命令来安装、卸载或更新软件包。scoop 提供了便捷的包管理体验,可以帮助我们省去手动下载、配置和更新软件的麻烦。在本文中,我们将使用 scoop 来安装所有相关工具,包括 oh-my-posh 和 clink,让整个安装过程更加流畅高效。

在这里插入图片描述

字体下载

为了在 oh-my-posh 中正确显示各类图标,我们需要安装支持 Nerd Fonts 的字体。推荐下载 Meslo 或其他你喜欢的 Nerd Fonts 字体。安装方法如下:

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

二、配置 Windows Terminal

找到PowerShell的外观设置

在这里插入图片描述

设置文本样式

在这里插入图片描述

设置背景图,透明度等

在这里插入图片描述

添加启动参数 -nologo 来隐藏 PowerShell 启动时的欢迎信息。这样,启动 PowerShell 时就不会显示欢迎信息。请注意,这个设置仅适用于 PowerShell,而不适用于 CMD。

在这里插入图片描述

同样,你可以设置 cmd 的外观,甚至将 cmd 设置为默认启动的终端

设置外观
设置默认启动

三、配置 oh-my-posh

oh-my-posh 是一个可以自定义命令行提示符样式的工具,支持丰富的主题和自定义选项。尽管它在资源占用上相对较大且启动速度较慢,但仍然受到许多开发者的青睐。

安装

在 PowerShell 中使用 scoop 安装 oh-my-posh:

scoop install oh-my-posh

在这里插入图片描述

确保 scoop\shims 路径已添加到环境变量中:

在这里插入图片描述

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

激活 oh-my-posh

编辑 PowerShell 配置文件

oh-my-posh 需要在 PowerShell 配置文件中进行初始化。可以通过以下命令打开 PowerShell 的配置文件:

notepad $PROFILE

在这里插入图片描述

若提示找不到文件,可以手动创建,或使用以下命令直接新建配置文件并写入初始化代码

mkdir "$env:HOMEPATH\Documents\WindowsPowerShell"
Set-Content $env:HOMEPATH\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 'oh-my-posh init pwsh | Invoke-Expression'

保存文件后,重启 PowerShell 以使配置生效。若成功加载,oh-my-posh 会自动显示出美化后的提示符。

配置主题

查看主题列表

oh-my-posh 提供了多种预设主题,可以使用以下命令查看并选择自己喜欢的主题:

Get-PoshThemes
使用自定义主题

如果希望加载特定的主题文件,可以将主题路径指定到初始化命令中:

oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\montys.omp.json" | Invoke-Expression

四、配置 clink

clink 是一款增强 CMD 功能的小工具,支持自动补全、命令历史等功能,极大提升了 CMD 的使用体验。

安装

在 PowerShell 中使用 scoop 安装 clink:

scoop install clink

激活 clink

设置 clink 自动运行

可以通过 autorun 命令设置 clink 自动运行,并使用quiet参数,这样每次启动 CMD 时 clink 会自动启用并禁用启动提示信息:

clink autorun install -- --quiet

使用quiet参数前后的区别如下图:

前
(使用前)

后
(使用后)

若只想在当前 CMD 会话中暂时体验 clink 功能,可使用以下命令:

clink inject
启用自动补全

clink 支持 autosuggest 自动补全功能,类似于 shell 中的 zsh 自动建议,可以通过以下命令启用该功能:

clink set autosuggest.enable true
查看 clink 配置

可以使用以下命令查看当前的 clink 配置信息:

clink info

配置 oh-my-posh 样式在 CMD 中显示

如果希望在 CMD 中同样展示 oh-my-posh 的样式,可以通过 Lua 脚本加载主题。具体步骤如下:

  1. 创建 Lua 配置文件
    C:\Users\xtj6\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%\\your-theme.omp.json"'):read("*a"))()
    

    注意:确保 POSH_THEMES_PATH 环境变量正确配置,your-theme.omp.json 为你的自定义主题文件名。

配置完成后,重新打开 CMD,即可看到应用了 oh-my-posh 的自定义提示符样式。

CMD 的其他增强操作

clink 可以在 CMD 中给常用的 Linux 指令(如 lsrm 等)设置别名,从而让习惯于 LInux 命令行的用户不会为常见命令的差异而困扰。关于如何实现这些指令的更多信息,可参考文章:使用clink优化cmd。


➤ 参考资料

  • https://www.bilibili.com/read/cv20467382/
  • https://halc.top/p/82bd449c
  • https://www.cnblogs.com/hongdada/p/16826311.html

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2233885.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

「Mac畅玩鸿蒙与硬件17」鸿蒙UI组件篇7 - Animation 组件基础

在应用开发中&#xff0c;动画效果可以增强用户体验。鸿蒙框架提供了 translate、scale 和 rotate 等动画功能&#xff0c;允许对组件进行平移、缩放和旋转等操作。本篇将介绍 Animation 组件的基础知识和示例代码。 关键词 Animation 组件动画效果位置动画自动动画缩放动画 一…

编写第一个 Appium 测试脚本:从安装到运行!

前言 最近接到一个测试项目&#xff0c;简单描述一下&#xff0c;需求就是&#xff1a;一端发送指令&#xff0c;另一端接受指令并处理指令。大概看了看有上百条指令&#xff0c;点点点岂不是废了&#xff0c;而且后期迭代&#xff0c;每次都需要点点点&#xff0c;想想就头大…

vue 使用docx-preview 预览替换文档内的特定变量

在开发合同管理中&#xff0c;需要使用到此功能&#xff0c;就是替换合同模板内的一些字符串&#xff0c;如&#xff1a;甲乙方名称&#xff0c;金额日期等&#xff0c;合同内容不变。效果如下&#xff1a; 使用docx-preview 好处是只预览不可编辑内容。 前端vue import { re…

部署istio应用未能产生Envoy sidecar代理

1. 问题描述及原因分析 在部署Prometheus、Grafana、Zipkin、Kiali监控度量Istio的第2.2章节&#xff0c;部署nginx应用&#xff0c;创建的pod并没有产生Envoy sidecar代理&#xff0c;仅有一个应用容器运行中 故在随后的prometheus中也没有产生指标istio_requests_total。通…

搭建你的私人云盘:使用File Browser与cpolar实现公网传输文件

文章目录 前言1.下载安装File Browser2.启动访问File Browser3.安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3.4 创建公网地址 4.固定公网地址访问 前言 File Browser是一个开源的文件管理器和文件共享工具&#xff0c;它可以帮助用户轻…

NRF52832学习笔记(41)——添加串口库libuarte

一、背景 由于板子上不支持硬件流控&#xff0c;在使用 app_uart_fifo 库接收串口大数据时&#xff0c;频繁报 APP_UART_COMMUNICATION_ERROR 错误&#xff0c;多次重新初始化后&#xff0c;串口也不再产生中断了。查看官方论坛后决定使用串口异步库 libuarte。 二、简介 Li…

嵌入式硬件工程师的职业发展规划

嵌入式硬件工程师可以按照以下阶段进行职业发展规划&#xff1a; 1. **初级阶段&#xff08;1-3 年&#xff09; ** - **技术学习与积累**&#xff1a; **电路基础强化**&#xff1a; 深入学习模拟电路和数字电路知识&#xff0c;能够熟练分析和设计基本的电路&#xff0c;…

2024.11.5- Redis(3)

五 Redis的发布订阅 5.1 介绍 Redis通过publish、subscribe和psubcribe、Unsubscribe和punsubscribe等命令实现发布、订阅和退订功能。这些命令被广泛用于构建即时通信应用&#xff0c;比如网络聊天室(chatroom)和实时广播、实时提醒等。 ​ 角色: -- 客户端通过PUBLISH命令向…

最全Kafka知识宝典之消费端深度剖析

一、Kafka消费者基本特性 消费者与消费者组的关系 消费者用一个消费者组名标记自己 一个发布在Topic上消息被分发给此消费者组中的一个消费者 假如所有的消费者都在一个组中&#xff0c;那么这就变成了队列模型&#xff0c;即这些消费者只有一个消费者会收到消息假如所有的…

MySQL之JDBC入门详解

01-JDBC入门 一、JDBC概念 jdbc : java database connection , java数据库连接 jdbc是sun公司定义的java程序访问数据库的规范。 二、JDBC操作需要6步 三、入门程序 1、使用eclipse打开一个新的工作空间 2、切换到java视图界面 3、创建java工程&#xff1a;01-jdbc-helloworl…

ctfshow——web(总结持续更新)

文章目录 1、基础知识部分2、php伪协议2.1 php://input协议2.2 data://text/plain协议 3、webshell连接工具3.1 蚁剑连接一句话木马 4、各个web中间件重要文件路径4.1 Nginx 5、sqlmap使用6、php特性6.1 md5加密漏洞6.2 php特殊符号 7、TOP 10漏洞7.1 SQL注入7.2 代码执行7.3 文…

数论——约数(完整版)

2、约数 一个数能够整除另一数&#xff0c;这个数就是另一数的约数。 如2&#xff0c;3&#xff0c;4&#xff0c;6都能整除12&#xff0c;因此2&#xff0c;3&#xff0c;4&#xff0c;6都是12的约数。也叫因数。 1、求一个数的所有约数——试除法 例题&#xff1a; 给定…

python: Parent-child form operations using ttkbootstrap

# encoding: utf-8 # 版權所有 2024 ©塗聚文有限公司 # 許可資訊查看&#xff1a;言語成了邀功的功臣&#xff0c;還需要行爲每日來值班嗎&#xff1f; # 描述&#xff1a; 主、子表單 窗體傳值 Parent-child form operations # Author : geovindu,Geovin Du 塗聚文. …

读书笔记#深入理解Java虚拟机(第三版)# Java内存模型与线程

深入理解Java虚拟机&#xff08;第三版&#xff09;# 高效并发 chap12 Java内存模型与线程 概述 在许多场景下&#xff0c;让计算机同时去做几件事情&#xff0c;不仅是因为计算机的运算能力强大了&#xff0c;还有一个很重要的原因是计算机的运算速度与它的存储和通信子系统的…

文心一言 VS 讯飞星火 VS chatgpt (383)-- 算法导论24.5 3题

三、对引理 24.10 的证明进行改善&#xff0c;使其可以处理最短路径权重为 ∞ ∞ ∞ 和 − ∞ -∞ −∞ 的情况。引理 24.10(三角不等式)的内容是&#xff1a;设 G ( V , E ) G(V,E) G(V,E) 为一个带权重的有向图&#xff0c;其权重函数由 w : E → R w:E→R w:E→R 给出&…

阿里云-部署CNI flannel集群网络

环境 1.一台阿里云作为k8s-master:8.130.XXX.231&#xff08;阿里云私有IP&#xff09; 2.Vmware 两个虚拟机分别作为 k8s-node1:192.168.40.131 k8s-node2:192.168.40.131 3.安装Docker 部署过程 k8s-master,k8s-node1,k8s-node2 初始操作 # 关闭防火墙 systemctl stop fi…

「C/C++」C++设计模式 之 抽象工厂模式(Abstract Factory)

✨博客主页何曾参静谧的博客&#x1f4cc;文章专栏「C/C」C/C程序设计&#x1f4da;全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasoli…

免费在线绘图:创意与效率的结合

在数字化时代&#xff0c;绘图已成为各行业人士的基本技能。无论你是设计师、学生、创作者还是爱好者&#xff0c;免费的在线绘图软件都是释放创意和表达思想的理想选择。本文将介绍七款功能全面、免费的在线绘图软件&#xff0c;帮助你轻松实现创作愿景。只需网络连接&#xf…

【教程】Git 标准工作流

目录 前言建仓&#xff0c;拉仓&#xff0c;关联仓库修改代码更新本地仓库&#xff0c;并解决冲突提交代码&#xff0c;合入代码其他常用 Git 工作流删除本地仓库和远程仓库中的文件日志打印commit 相关 前言 Git 是日常开发中常用的版本控制工具&#xff0c;配合代码托管仓库…

基于springboot+vue实现的任务管理系统(源码+L文)4-103

第4章 系统设计 4.1 总体功能设计 员工&#xff0c;经理&#xff0c;管理员都需要登录才能进入任务管理系统&#xff0c;使用者登录时会在后台判断使用的权限类型&#xff0c;包括一般使用者和管理者,一般使用者为员工和经理&#xff0c;对员工只能提供任务信息显示查询&…