windows terminal美化教程

安装terminal

微软商店下载安装terminal

配置文件

进入terminal,打开设置。

{"$schema": "https://aka.ms/terminal-profiles-schema",// global settings"profiles": {// profile settings"defaults": {// default settings},"list": [// profile lists]},"schemes": [], // color scheme settings"keybindings": [// key bindings]
}
  • 顶部的$schema是软件生成的固定内容。
  • //global settings位置可以设置很多终端表现相关的设置选项。
  • profile处设置 Shell 相关的配置选项。
  • schemes处设置颜色配置相关的配置选项。
  • keybindings设置键盘组合键相关的配置选项。

分享一下我的配置文件(淳朴简约,没有花里胡哨的界面配置,节约性能哈哈):

{"$help": "https://aka.ms/terminal-documentation","$schema": "https://aka.ms/terminal-profiles-schema","actions": [{"command": {"action": "copy","singleLine": false},"keys": "ctrl+c"},{"command": "paste","keys": "ctrl+v"},{"command": "find","keys": "ctrl+shift+f"},{"command": {"action": "splitPane","split": "auto","splitMode": "duplicate"},"keys": "alt+shift+d"}],"copyFormatting": "none","copyOnSelect": true,"defaultProfile": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}","focusFollowMouse": true,"newTabMenu": [{"type": "remainingProfiles"}],"profiles": {"defaults": {"adjustIndistinguishableColors": "indexed","backgroundImage": "desktopWallpaper","backgroundImageOpacity": 0.9,"font": {"face": "Cascadia Code","weight": "medium"}},"list": [{"commandline": "%SystemRoot%\\System32\\WindowsPowerShell\\v1.0\\powershell.exe","guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}","hidden": false,"name": "Windows PowerShell"},{"commandline": "%SystemRoot%\\System32\\cmd.exe","guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}","hidden": false,"name": "\u547d\u4ee4\u63d0\u793a\u7b26"},{"guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}","hidden": false,"name": "Azure Cloud Shell","source": "Windows.Terminal.Azure"},{"guid": "{4dd1e689-b517-5f39-947d-78e8a8bdf958}","hidden": false,"name": "Ubuntu 20.04.6 LTS","source": "CanonicalGroupLimited.Ubuntu20.04LTS_79rhkp1fndgsc"},{"guid": "{07b52e3e-de2c-5db4-bd2d-ba144ed6c273}","hidden": true,"name": "Ubuntu-20.04","source": "Windows.Terminal.Wsl"},{"guid": "{a5a97cb8-8961-5535-816d-772efe0c6a3f}","hidden": false,"name": "Arch","source": "Windows.Terminal.Wsl"}]}
}

更多配置参考官方文档(Windows 终端常规配置文件设置 | Microsoft Learn)

关于主题使用oh-my-posh 

2.参考文档
Microsoft官方教程 :使用 Oh My Posh 为 PowerShell 或 WSL 设置自定义提示符

oh-my-posh官方教程:oh-my-posh

1.字体设置

首先去 Github 下载 nerd-fonts 字体。字体设置的目的是为了保证在安装了 oh-my-posh 后不产生特殊字符显示的问题。

点击 Release,找到 FiraCode.zip 进行下载。解压,安装字体

设置 WindowsTerminal 默认字体

安装 oh-my-posh 

  PSReadLine 、oh-my-posh 和 posh-git 这三个模块来为 PowerShell 带来类似于 Mac 上的 oh my zsh 的体验,包括语法高亮、错误提示、多行编辑、快捷键绑定、自动补全、历史搜索、Git 扩展显示等功能。

查看已安装的模块
Get-InstalledModule
安装 PSReadLine

PSReadLine 提供了语法高亮、错误提示、多行编辑、键绑定、历史记录搜索等功能:

#用管理员打开powershell
Install-Module PSReadLine
安装 posh-git

posh-git 可以在 PowerShell 中显示 Git 状态信息,并提供 Git 命令的自动补全:

Install-Module posh-git
安装 oh-my-posh

PowerShell命令行美化

oh-my-posh 是 PowerShell 主题管理工具,posh-git 可以实现类似 oh-my-zsh 一样的 Git 命令增强工具(命令别名和显示分支信息等),但是,oh-my-posh 基于 posh-git 的,所以两个都要安装。
提示:请提前以管理员身份运行 PowerShell

1.安装oh-my-posh

winget install JanDeDobbeleer.OhMyPosh -s winget

2.查看主题列表,并试用主题

Get-PoshThemes

问题一:无法识别Get-PoshThemes命令

很好,报错了,查看文档,文档

对于要重新加载的 PATH 终端,建议重新启动终端。如果 oh-my-posh 未被识别为命令,您可以再次运行安装程序,或手动将其添加到您的 PATH .例如:

$env:Path += "C:\Users\user\AppData\Local\Programs\oh-my-posh\bin"

不用代码也可以在高级系统设置里添加环境变量:

添加好,终端要都关掉再启动,不然环境变量更新不上去。

oh-my-posh的安装路径通常默认在C:\Program Files (x86)\oh-my-posh\(或者C:\Users\user\AppData\Local\Programs\oh-my-posh)

在上面添加了环境变量了,如果还是无法识别Get-PoshThemes命令,就直接卸载重装oh-my-posh。

#powershell卸载
winget uninstall JanDeDobbeleer.OhMyPosh
#powershell安装
winget install JanDeDobbeleer.OhMyPosh

手动安装也可以,这里提供一下github下ohmyposh下载地址,一般不管用命令行还是手动安装会自动设置环境变量,如果没有按上面自行设置。

这个小插曲搞定,继续下一步:

创建配置文件

New-Item -Path $PROFILE -Type File -Force

编辑配置文件

notepad $PROFILE

这时应该会打开记事本,将步骤二里的的代码添加进去并保存,例如保存 wholespace 主题,将如下代码加入记事本:

[System.Console]::OutputEncoding=[System.Text.Encoding]::GetEncoding(65001) # 配置默认编码
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\atomic.omp.json" | Invoke-Expression # 配置oh-my-posh的theme

你可以修改atomic.omp.json 为 oh-my-posh的主题文件,你可以在 Themes | Oh My Posh 这里找到自己喜欢的主题名称。配置完成后关闭 terminal 重新开发就可以看到新的主题了。

关于配置文件我们也可以手动打开,配置文件的路径:C:\Users\user\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

如果你用的是 PowerShell那么配置文件 C:\Users\user\Documents\PowerShell\Microsoft.PowerShell_profile.ps1

问题二:powershell禁止运行脚本

重新打开终端报错一下:

解决
  1. 1、以管理员身份运行 PowerShell:  执行策略更改通常需要管理员权限。因此,您需要以管理员身份打开 PowerShell。可以通过搜索“PowerShell”找到它,然后右键选择“以管理员身份运行”。
  2. 2、查看当前执行策略
    在 PowerShell 中运行以下命令来查看当前的执行策略设置:
Get-ExecutionPolicy
     3、更改执行策略
如果您想要允许所有本地脚本运行(请注意,这可能会带来安全风险,因为恶意脚本也可能被运行),可以使用以下命令将执行策略设置为 Bypass
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser

这里简单介绍一下powershell的执行策略:

  4、PowerShell 执行策略

这些策略仅在 Windows 平台上执行。 PowerShell 执行策略如下:

  • AllSigned

    • 脚本可以运行。
    • 要求所有脚本和配置文件都由受信任的发布者签名,包括在本地计算机上编写的脚本。
    • 在运行来自尚未分类为可信或不可信的发布者的脚本之前会提示你。
    • 存在运行已签名的恶意脚本的风险。
  • Bypass

    • 不阻止任何操作,并且没有任何警告或提示。
    • 此执行策略专为将 PowerShell 脚本内置到较大应用程序中的配置,或以 PowerShell 为具有自己的安全模型的程序的基础的配置而设计。
  • Default

    • 设置默认执行策略。
    • Restricted(适用于 Windows 客户端)。
    • RemoteSigned(适用于 Windows 服务器)。
  • RemoteSigned

    • Windows 服务器计算机的默认执行策略。
    • 脚本可以运行。
    • 需要受信任的发布者对从 Internet 下载的脚本和配置文件(包括电子邮件和即时消息程序)的数字签名。
    • 在本地计算机上编写且不是从 Internet 下载的脚本不需要数字签名。
    • 如果脚本已解除阻止(例如通过使用 Unblock-File cmdlet),则运行从 Internet 下载且未签名的脚本。
    • 存在运行来自 Internet 以外来源的未签名脚本以及可能存在恶意的签名脚本的风险。
  • Restricted

    • Windows 客户端计算机的默认执行策略。
    • 允许单个命令,但不允许脚本。
    • 阻止运行所有脚本文件,包括格式和配置文件 (.ps1xml)、模块脚本文件 (.psm1) 和 PowerShell 配置文件 (.ps1)。
  • Undefined

    • 当前作用域内没有设置执行策略。
    • 如果所有作用域内的执行策略均为 Undefined,则对于 Windows 客户端,有效执行策略为 Restricted;对于 Windows Server,有效执行策略为 RemoteSigned
  • Unrestricted

    • 非 Windows 计算机的默认执行策略,无法更改。
    • 未签名的脚本可以运行。 存在运行恶意脚本的风险。
    • 在运行非来自本地 Intranet 区域的脚本和配置文件之前警告用户。

重新打开成功!

powershell配置文件地址是 C:\Users\<userName>\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 。

作用是在 PowerShell 启动时运行一些自定义的设置,比如导入模块、设置别名、定义函数等。

粘贴以下配置内容,可以参考注释根据自己需求修改或者删除:

<#* FileName: Microsoft.PowerShell_profile.ps1* Author: Devil* Email: 1093008057@qq.com* Date: 2024.04.07* Copyright:  You can use this code for anything with no warranty.
#>#------------------------------- Import Modules BEGIN -------------------------------
# 引入 ps-read-line
Import-Module PSReadLine# 引入 posh-git
Import-Module posh-git# 引入 oh-my-posh
Import-Module oh-my-posh# 设置 PowerShell 主题
# Set-PoshPrompt ys
Set-PoshPrompt emodipt-extend
#------------------------------- Import Modules END   -------------------------------#-------------------------------  Set Hot-keys BEGIN  -------------------------------
# 设置预测文本来源为历史记录
Set-PSReadLineOption -PredictionSource History# 每次回溯输入历史,光标定位于输入内容末尾
Set-PSReadLineOption -HistorySearchCursorMovesToEnd# 设置 Tab 为菜单补全和 Intellisense
Set-PSReadLineKeyHandler -Key "Tab" -Function MenuComplete# 设置 Ctrl+d 为退出 PowerShell
Set-PSReadlineKeyHandler -Key "Ctrl+d" -Function ViExit# 设置 Ctrl+z 为撤销
Set-PSReadLineKeyHandler -Key "Ctrl+z" -Function Undo# 设置向上键为后向搜索历史记录
Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward# 设置向下键为前向搜索历史纪录
Set-PSReadLineKeyHandler -Key DownArrow -Function HistorySearchForward
#-------------------------------  Set Hot-keys END    -------------------------------

上述就是关于Windows Terminal 美化 PowerShell 内容了。

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

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

相关文章

阿里云服务器租赁一年收费标准

阿里云服务器租用价格表2024年最新&#xff0c;云服务器ECS经济型e实例2核2G、3M固定带宽99元一年&#xff0c;轻量应用服务器2核2G3M带宽轻量服务器一年61元&#xff0c;ECS u1服务器2核4G5M固定带宽199元一年&#xff0c;2核4G4M带宽轻量服务器一年165元12个月&#xff0c;2核…

Docker设置时区

Dockerfile中设置时区的方法 # 设置环境变量TZ ENV TZAsia/Shanghai# 配置时区 RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone创建容器时设置时区 将宿主机与容器的时间进行挂载&#xff0c;直接使用宿主机的时区 -v /etc/lo…

【亲测有效】微信公众号设置菜单栏显示,未开启自定义菜单,微信公众平台自定义菜单接口开发

微信公众平台自定义菜单接口开发 问题:运营人员在设置微信公众号设置菜单栏显示,未开启自定义菜单解决方案(微信公众平台自定义菜单接口开发):自定义菜单-创建接口请求链接完整代码第一步:在WeChat类里添加代码情况一:没有WeChat类情况,如果已有请看情况二情况二:已有…

【系统架构师】-软件架构设计

1、软件架构的概念 架构的本质 1、软件架构为软件系统提供了一个结构、行为和属性的高级抽象。 2、软件架构风格是特定应用领域的惯用模式&#xff0c;架构定义一个词汇表和一组约束。 架构的作用 1、软件架构是项目干系人进行交流的手段。 2、软件架构是可传递和可复用的模型…

day21java学习打卡:匿名对象的使用

/* * 一.理解“万事万物皆对象” * 1.在java语言范畴中&#xff0c;我们的都将功能&#xff0c;结构封装到类中&#xff0c;通过类的实例化, * 来调节具体的功能结构 * >Scanner&#xff0c;String * >文件&#xff1a;File * >网络资源&#xff1a…

番茄 短abogus补环境

声明: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;wx a15018601872 本文章…

简化开发与提升可维护性的编程范式-声明式 API

目录 什么是声明式 API 声明式 API 的优势 声明式 API 的应用 声明式 API 面临的挑战 小结 声明式 API 是一种现代编程范式&#xff0c;特别是在云计算和容器编排领域被广泛应用&#xff0c;其设计理念强调通过声明所需的目标状态来管理复杂系统&#xff0c;而非具体指定达…

端到端单倍型参考基因组揭示了三倍体香芽蕉型香蕉亚基因组的分歧和疾病抵抗力-文献精读-5

T2T基因组文献分享Telomere-to-telomere haplotype-resolved reference genome reveals subgenome divergence and disease resistance in triploid Cavendish banana 三倍体植物基因组的文献&#xff0c;各位同仁还有什么有特色的基因组评论区留言~ 摘要 香蕉是世界上最重要…

JavaEE——手把手教你实现简单的 servlet 项目

文章目录 一、什么是 Servlet二、创建一个简单的 Servlet 程序1. 创建项目2.引入依赖3. 创建目录4.编写代码5. 打包程序6. 部署7.验证整体过程总结 三、使用 Smart Tomcat 插件简化项目创建四、创建项目时可能遇到的几个问题。 一、什么是 Servlet Servlet 是一种实现 动态页面…

12、最小覆盖子串

如何想到这个解法 问题的特点&#xff1a; 首先&#xff0c;认识到这是一个关于子串的问题&#xff0c;而且需要考虑子串的最小长度。这提示我们可能需要使用一种方式来逐步探索不同的子串。滑动窗口的适用性&#xff1a;滑动窗口是处理子串问题的常用技巧&#xff0c;特别是当…

【图像分割】nnUnetV1与V2的Linux部署与应用命令

以前觉得麻烦&#xff0c;一直没用过nnunet&#xff0c;虽然知道它很火&#xff0c;最近一个契机&#xff0c;部署使用了一下nnunet&#xff0c;记录一下其部署和使用的方法与命令。 1、部署 首先&#xff0c;我有一个环境&#xff0c;这个环境可以是以前就有的&#xff0c;也可…

蓝桥杯算法题:九宫幻方

小明最近在教邻居家的小朋友小学奥数&#xff0c;而最近正好讲述到了三阶幻方这个部分&#xff0c;三阶幻方指的是将 1∼9 不重复的填入一个 33 的矩阵当中&#xff0c;使得每一行、每一列和每一条对角线的和都是相同的。 三阶幻方又被称作九宫格&#xff0c;在小学奥数里有一句…

1.c++入门(命名空间、缺省参数、函数重载、引用、内联函数、for循环、auto关键字、指针空值nullptr)

1.c的第一个程序 // 方法一 #include<iostream>// namespace为命名空间的关键字&#xff0c;std为空间名&#xff1b; C标准库的东西放进std命名空间 using namespace std; int main() {cout << "hello world" << endl;return 0; }// 方法二 #in…

YOLOv8的多分类模型如何计算准确率(Accuracy)、精确率(Precision)、召回率(recall)和F1-Score模型评估参数

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

Unity构建详解(6)——SBP的Bundle写操作生成

以下三个操作实际上是为了得到构建Bundle需要的其他参数&#xff0c;最关键的Bundle组装参数在上文已经说过了&#xff0c;至于这三个操作的具体细节不用过于追究&#xff0c;一般不怎么会取修改。 这些参数采用命令模式被封装起来&#xff0c;这是常见的参数非常多的时候的处…

轻量级容器运行时containerd安装

1、yum安装 1.1、获取阿里云YUM源 wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo1.2、查看YUM源中Containerd软件 yum list | grep containerd containerd.io.aarch64 …

train_reader 训练数据提供器。创建Executor执行器。数据读取器(DataFeeder)

目录 农作物病害智能识别 -AttributeError Traceback (most recent call last)/tmp train_reader 训练数据提供器 train_reader

【Linux】 OpenSSH_9.3p1 升级到 OpenSSH_9.6p1(亲测无问题,建议收藏)

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;CSDN博客专家   &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01…

【leetCode】2810. 故障键盘

文章目录 [2810. 故障键盘](https://leetcode.cn/problems/faulty-keyboard/)思路一&#xff1a;模拟代码&#xff1a;思路二&#xff1a;双端队列代码&#xff1a; 2810. 故障键盘 思路一&#xff1a;模拟 用StringBuilder来拼贴字符遍历字符串&#xff0c;如果遇到i,对拼贴好…

【LintCode】448 · 二叉查找树的中序后继

题目 描述 给定一个二叉查找树(什么是二叉查找树),以及一个节点,求该节点在中序遍历的后继,如果没有则返回 null。 保证 p 是给定二叉树中的一个节点。(您可以直接通过内存地址找到 p) 样例 样例1: 输入: {1,#,2}, node with value 1 输出: 2 解释: 1\2样例2: 输入…