windows-terminal 搭配 oh-my-posh 配置自定义终端

2023-05-16

目录

    • 1. 启动 powershell
    • 2. 查看 powershell 版本
    • 3. 升级 powershell
    • 4. 修改执行策略
    • 5. powershell7 说明
    • 6. 配置启动文件
    • 7. oh-my-posh 下载安装
    • 8. 配置 oh-my-posh Themes
    • 9. 配置 Windows Terminal 主题
    • 10. 其他自定义快捷方式
    • 11. vscode 搭配
    • 12. 最后

如果更换电脑,要配置 windows terminal 的话,本文恰好可以作为一个初步的参考。

1. 启动 powershell

其实比较简单,直接 win + S 搜索到 powershell 即可启动,win 11 我们直接使用默认的 windows terminal 来启动 powershell, 可以按下 Ctrl 打开新标签页,默认开启管理员模式

2. 查看 powershell 版本

$PSVersionTable

Name                           Value
----                           -----
PSVersion                      7.4.0-preview.2
PSEdition                      Core
GitCommitId                    7.4.0-preview.2
OS                             Microsoft Windows 10.0.22621
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

3. 升级 powershell

如果是 powershell5.1, 可以升级一下到 7, 有些新特性支持,配置文件的方法也改变了一些

# 搜索可用版本 (需要开启梯子)
winget search Microsoft.PowerShell

# 使用 id 参数安装 PowerShell 或 PowerShell 预览版
winget install --id Microsoft.Powershell --source winget
winget install --id Microsoft.Powershell.Preview --source winget

参考 这里 的最新命令,环境变量会自动添加到系统表中

4. 修改执行策略

具体原因不详,但是通过以下配置可以无障碍运行ps脚本

# 执行下面这段
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

Execution Policy Change
The execution policy helps protect you from scripts that you do not trust. Changing the execution
policy might expose you to the security risks described in the about_Execution_Policies help topic
at http://go.microsoft.com/fwlink/?LinkID=135170. Do you want to change the execution policy?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"):y

5. powershell7 说明

PowerShell 7 是专为云、本地和混合环境设计的,它包含增强功能和新功能。

  • 与 Windows PowerShell 并行安装和运行
  • 提升了与现有 Windows PowerShell 模块的兼容性
  • 新语言功能(如三元运算符和 ForEach-Object -Parallel
  • 提高了性能
  • 基于 SSH 的远程处理
  • 跨平台互操作性
  • 支持 Docker 容器

注意: powershell 7 的配置路径和 5 不在一起,需要先明确它的配置路径

  1. 查看 PSModulePath 位置 (安装或自定义的一些插件位置)
$Env:PSModulePath -split (';')

C:\Users\yu123\Documents\PowerShell\Modules
C:\Program Files\PowerShell\Modules
c:\program files\powershell\7-preview\Modules
C:\Program Files\WindowsPowerShell\Modules
C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules
PS C:\Users\yu123> $env:ProgramFiles\PowerShell\7
  1. 查看 Powershell 启动脚本位置 (主启动文件)
PS C:\Users\yu123> $PROFILE | Select-Object *Host* | Format-List

AllUsersAllHosts       : C:\Program Files\PowerShell\7-preview\profile.ps1
AllUsersCurrentHost    : C:\Program Files\PowerShell\7-preview\Microsoft.PowerShell_profile.ps1
CurrentUserAllHosts    : C:\Users\yu123\Documents\PowerShell\profile.ps1
CurrentUserCurrentHost : C:\Users\yu123\Documents\PowerShell\Microsoft.PowerShell_profile.ps1

6. 配置启动文件

新建文件并使用 vscode 打开

 New-Item -Path $Profile -Force
 
 code $Profile

7. oh-my-posh 下载安装

Oh My Posh 安装说明-官网

我使用的是 Fira Code 字体: 下载 , 然后放入 C:\Windows\Fonts 文件夹下进行安装
【可选】选择带图标的 NerdFont 字体 下载

# 查看已经安装的包, 如果安装了先卸载旧版本的
Get-InstalledModule

# 最好管理员模式下依次运行
winget install JanDeDobbeleer.OhMyPosh -s winget
Install-Module posh-git -Scope CurrentUser
Install-Module npm-completion -Scope CurrentUser

# 【5.1 版本安装方式,暂不考虑】
# Install-Module PSReadLine -Scope CurrentUser

在前面打开的启动文件中,填入下面的配置:

# Microsoft.PowerShell_profile.ps1
oh-my-posh init pwsh | Invoke-Expression
Import-Module posh-git
Import-Module npm-completion

# key binding for PSReadLine 
Set-PSReadLineKeyHandler -Chord "Tab" -Function MenuComplete
Set-PSReadLineKeyHandler -Chord "Ctrl+f" -Function ForwardWord

提示:

  • 推荐根据 oh-my-posh 的官网介绍来选择最新的安装方法和配置方法
  • powershell 7自带 PSReadLine 不需要额外下载引入了

8. 配置 oh-my-posh Themes

搞半天不就为了这个嘛。

​ 主题预览

​ 主题默认已经全部下载到本地了,直接配置上就可以用了,这里选择了 ys 主题,你可以选择你喜欢的即可

# 修改启动文件第一项 添加 --config + 配置文件路径
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\ys.omp.json" | Invoke-Expression

9. 配置 Windows Terminal 主题

  • 预览主题列表
  • 自定义主题-官网

我选择了 JetBrains Darcula 这个主题,直接复制好颜色代码填入 schemes 中,然后在 "profiles": "defaults": { } 里面设置对应的主题。

// setting.json

{
  "...": "省略不重要的一些配置",
  "defaultProfile": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
+ "initialCols": 100,
+ "initialPosition": "1920,1080",
+ "initialRows": 30,
+ "centerOnLaunch": true,

+ "profiles": {
+   "defaults": {
+     "colorScheme": "JetBrains Darcula",
+     "cursorShape": "bar"
+ 	  "cursorShape": "bar",
+     "elevate": false,
+     "startingDirectory": null
+   },
    "list": [
      {
        "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
        "hidden": false,
        "name": "Windows PowerShell"
      },
      {
        "guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
+       "font": { "face": "Fira Code", "size": 12.0 },
        "hidden": false,
        "name": "PowerShell",
        "source": "Windows.Terminal.PowershellCore"
      }
    ]
  },
  "schemes": [
+    {
+     "background": "#202020",
+     "black": "#000000",
+     "blue": "#4581EB",
+     "brightBlack": "#555555",
+     "brightBlue": "#6D9DF1",
+     "brightCyan": "#60D3D1",
+     "brightGreen": "#67FF4F",
+     "brightPurple": "#FB82FF",
+     "brightRed": "#FB7172",
+     "brightWhite": "#EEEEEE",
+     "brightYellow": "#FFFF00",
+     "cursorColor": "#FFFFFF",
+     "cyan": "#33C2C1",
+     "foreground": "#ADADAD",
+     "green": "#126E00",
+     "name": "JetBrains Darcula",
+     "purple": "#FA54FF",
+     "red": "#FA5355",
+     "selectionBackground": "#1A3272",
+     "white": "#ADADAD",
+     "yellow": "#C2C300"
+   },
  ],
}

10. 其他自定义快捷方式

基本上都弄好了,还可以在启动脚本中配置一些自己的自定义命令

oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\ys.omp.json" | Invoke-Expression
Import-Module npm-completion
Import-Module posh-git

Set-PSReadLineKeyHandler -Chord "Tab" -Function MenuComplete
Set-PSReadLineKeyHandler -Chord "Ctrl+f" -Function ForwardWord

# --------------------------------- Set Alias Begin ---------------------------------------
# 新建文件 touch 
function CreateNewFile () {
  param([string]$Path)
  New-Item -Path $Path -ItemType File -Force
}
Set-Alias -Name touch -Value CreateNewFile

# 查看目录 ls & ll
function ListDirectory {
	(Get-ChildItem).Name
	Write-Host("")
}
Set-Alias -Name ls -Value ListDirectory
Set-Alias -Name ll -Value Get-ChildItem

# 打开当前工作目录 open
function OpenCurrentFolder {
	param
	(
		# 输入要打开的路径
		# 用法示例:open C:\
		# 默认路径:当前工作文件夹
		$Path = '.'
	)
	Invoke-Item $Path
}
Set-Alias -Name open -Value OpenCurrentFolder

# 搜索文件 find [文件名]
function findFileRecurse {
  param($queryFile)
  dir -Path '.\' -Filter $queryFile -Recurse
}
Set-Alias -Name find -Value findFileRecurse

# 搜索字符串 grep [查询字符] [查询路径]
function findStringRecurse {
  param($queryString, $queryPath='*.*')
  findstr /s /i $queryString $queryPath
}
Set-Alias -Name grep -Value findStringRecurse

# 快速跳转到工作目录
function goToWorkspace { cd D:\giteeworkspace\repos }
Set-Alias -Name work -Value goToWorkspace

# ssh秘钥生成
function generateSsh { ssh-keygen -t ed25519 -C "$args[0]" }
Set-Alias -Name gssh -Value generateSsh 

# 简写命令
set-alias -name pn -value pnpm
set-alias -name tsd -value ts-node

# --------------------------------- Set Alias End ---------------------------------------

不会 powershell 的脚本语法,东拼西凑找了写了一些自己有用的,但是感觉这个东西还挺强的。

11. vscode 搭配

vscode 中的终端要应用如上的主题,需要修改一下它的配置文件:

 {
     // ------------------------------ terminal ---------------------------------------
      "terminal.integrated.defaultLocation": "view",
      "terminal.integrated.defaultProfile.windows": "pwsh",
      "terminal.integrated.fontFamily": "Fira Code, MesloLGS Nerd Font Mono",
      "terminal.integrated.rightClickBehavior": "default",
      "terminal.integrated.cursorBlinking": true,
      "terminal.integrated.shellIntegration.decorationsEnabled": "never",
      "terminal.integrated.shellIntegration.suggestEnabled": true,
      "terminal.integrated.fontSize": 13,
      "terminal.integrated.cursorWidth": 2,
      "terminal.integrated.cursorStyle": "line",
      "terminal.integrated.enableMultiLinePasteWarning": false,
 }

12. 最后

其实装了个主题也没有啥特别的效果,但是偶尔换个终端的主题,心情还是会好一点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

windows-terminal 搭配 oh-my-posh 配置自定义终端 的相关文章

  • 作为 Windows 服务运行时,Tomcat 7 控制台和/或托盘图标不显示

    我已将 Tomcat7 安装为服务 service bat 它作为服务启动并运行良好 但当您使用 Tomcat7 exe 或startup bat 手动启动服务器时 我看不到通常出现的控制台 顺便说一句 我在 Windows 7 上 我从这
  • 用于打开大(巨型、巨大、大)文本文件的文本编辑器[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在Windows中收集每个服务名称及其状态?

    我想在不使用任何第三方工具的情况下获取所有 service name 及其状态 迄今为止SC http ss64 com nt sc html命令足以获取其中一个值 例如 sc query findstr SERVICE NAME 但我还需
  • 在 Windows 11 上无需管理员权限即可运行 Visual Studio 2022

    我在 Windows 11 上安装了 Visual Studio 2022 当我启动它时 它始终以管理员权限运行 我想在没有管理员权限的情况下运行它 我的 Windows 只有一个帐户 该帐户具有管理员权限 x 我做了什么 确认VS2022
  • 在 Android SDK 中设置 JAVA_HOME

    我和对方有一些冲突JAVA HOME配置 当我使用以下代码时 System out println System getenv JAVA HOME I get C jdk1 6 0 23这是正确的地方 但是 当我在 Android buil
  • 如何在 PowerShell 中键入 TAB 字符?

    Task 默认情况下 在 Windows 命令提示符中按 TAB 键将输出文件名 而在 PowerShell 中则不会执行任何操作 我希望能够在交互模式下键入 TAB 字符 而不是通过脚本 Research 我在这个网站上和通过谷歌搜索发现
  • Python 可执行文件:py2exe 还是 PyInstaller?

    要创建可执行文件 Windows 我假设我们应该使用其中之一 Py2exe 或 PyInstaller 它们之间有什么区别 Py2exe 和 PyInstaller 都是包装器 但我注意到以下几点差异 Py2exe 与 python2 4
  • R 脚本自动化时的不同结果

    以下命令对 pdf 文件执行 Ghostscript 这pdf file变量包含该 pdf 的路径 bbox lt system paste C gs gs8 64 bin gswin32c exe sDEVICE bbox dNOPAUS
  • 如何更改选项卡控件的名称

    我在 C WinForms 应用程序中使用选项卡控件 我想更改选项卡的标题 默认情况下它们是 tabPage1 tabPage2 等 一种无需代码即可实现的懒惰方法 选择选项卡控件 Go to properties use F4 to do
  • Windows7上python3.5无法安装BeautifulSoup4

    我已经从下载了 beautifulsoup4 4 5 3 tar gzhttps www crummy com software BeautifulSoup bs4 download 4 5 https www crummy com sof
  • 如何在 C++ 中急于提交分配的内存?

    总体情况 带宽 CPU 使用率和 GPU 使用率都极其密集的应用程序需要每秒从一个 GPU 向另一个 GPU 传输约 10 15GB 的数据 它使用 DX11 API 来访问 GPU 因此上传到 GPU 只能在每次上传都需要映射的缓冲区中进
  • 更改 mingw' 启动目录或创建 mingw 符号链接

    设置 mingw 控制台启动目录的最简单方法是什么 我只使用 mingw 进行编译 但由于缺乏编辑器甚至符号链接 我很困惑如何告诉 mingw 控制台出现在不同的目录而不是常规的主目录中 如果有人知道如何像 cygwin 那样将 真正的 符
  • 带闭包的默认属性值使编译器重新编译所有文件

    This source https developer apple com library content documentation Swift Conceptual Swift Programming Language Initiali
  • 从命令行运行 R 代码 (Windows)

    我在名为 analysis r 的文件中有一些 R 代码 我希望能够从命令行 CMD 运行该文件中的代码 而无需通过 R 终端 并且我还希望能够传递参数并在我的代码中使用这些参数 例如就像下面的伪代码 C gt execute r scri
  • 设置 Form.KeyPreview = true 的缺点?

    我想知道 Form KeyPreview 属性实际上有什么用处 它为什么存在以及将其设置为 true 会带来什么 风险 我想它一定有some负面影响 否则它根本不应该存在 或者至少默认情况下是正确的 EDIT 我很清楚what确实如此 我问
  • Git 扩展 - 无法在 Windows 上推送到网络驱动器中的 git bare 存储库

    我正在 Windows 上学习 git 我已经安装了 Git 扩展 版本 2 47 3 并使用了它 我在我的 C 单元中创建了一个裸存储库 作为中央存储库 并在硬盘中的其他任何位置创建了个人存储库 我对硬盘中的这两个存储库进行提交 推送和拉
  • Kerberos 双跳

    我们遇到了臭名昭著的 Kerberos 双跳问题 这是一个全新的域 是从以前使用模拟和委派的另一个提供商迁移而来的 我们已将操作系统升级到最新的 SQL 服务器 2017 WPF 应用程序 使用域凭据 gt Web 服务 IIS 10 上的
  • Vim 在 Mingw 上表现异常

    我在 MinGW 4 6 2 上的 Vim 表现得很奇怪 例如 在插入模式下按 Backspace 会删除字符 但我必须用箭头键移动光标才能删除的字符消失 而且它也会使我退出插入模式 另一个例子 按 Del 删除字符有时会生成奇怪的字符 例
  • 需要 TensorFlow 依赖项。如何在 Windows 上运行 TensorFlow

    我有兴趣让 TensorFlow 在 Windows 上运行 但目前我意识到这是不可能的 因为某些依赖项无法在 Windows 上使用 例如巴泽尔 之所以出现这种需求 是因为据我目前了解 从 TensorFlow 访问 GPU 的唯一方法是
  • Qt 支持 Windows 蓝牙 API 吗?

    谁能告诉我 Qt 是否支持 Windows 蓝牙 API 如果是这样 您能否分享一些有关如何使用它的信息 自上次答复以来 这个问题的答案发生了一些变化 Qt 5 2 版为 Linux BlueZ 和 BlackBerry 设备实现了蓝牙 A

随机推荐

  • spark集群模式概览

    本文简短概述下spark如何在集群上运行 xff0c 使得更简单地理解涉及到的组件 可以通过读 应用提交指南 来学习在一个集群上加载应用 组件 spark应用作为独立的进程集运行在集群上 xff0c 在主应用 xff08 称为驱动程序 xf
  • SPARK RDD编程指南

    在高层次面上 xff0c 每个spark应用有一个驱动程序组成 xff0c 驱动程序运行用户的主函数 xff0c 在集群上执行很多并行操作 Spark提供的主要抽象是RDD xff0c 可以进行并行操作的跨节点分散的元素集 RDDs可以由H
  • Spark SQL,DataFrames and Datasets Guide

    概览 Spark SQL是Spark的一个结构化数据处理模块 不像基本的Spark RDD API xff0c Spark SQL提供的接口提供更多关于数据和执行的操作的结构信息 从内部看 xff0c Spark SQL使用额外的信息来执行
  • Structured Streaming Programming Guide-2.3.0

    概览 结构化流是一个可伸缩和容错的流处理引擎 xff0c 内置在Spark SQL 引擎中 你可以以对静态数据表达批处理计算的方式表达你的流计算 Spark SQL引擎会注意逐渐 持续第运行 xff0c 并随着流数据不断到来而更新最终的结果
  • 数据结构abc

    数据结构是指数据组织 xff08 逻辑 物理 xff09 的方式 xff0c 相应的操作 xff08 比如新增 查询 删除 修改 xff09 规则称为算法 xff0c 数据结构和算法构成数据管理方案 数据结构和算法相互影响 xff0c 同时
  • python之web.py

    安装 安装web py 请先下载 xff1a http webpy org static web py 0 37 tar gz 或者获取最新的开发版 xff1a https github com webpy webpy tarball ma
  • try-catch 报错

    try catch的意义 xff1a 1 报错处理 xff0c 输出日志 2 不影响代码块之外的代码执行 xff0c 即发生发生错误后之后的代码仍然后继续执行 try catch代码块与 throws Exception方法块区别 1 tr
  • DSP RTB SSP

    作者 xff1a 炸乌鸦面 链接 xff1a https www zhihu com question 23458646 answer 130631448 来源 xff1a 知乎 著作权归作者所有 商业转载请联系作者获得授权 xff0c 非
  • eclipse常见问题

    1 设置js文件编辑器编码 2 设置项目部署位置 xff0c 是Tomcat安装目录还是workspace位置 3 设置Java源文件编译后class文件输出位置 4 Java类文件等修改后没有重新编译 如果还不行 xff0c 就将JRE库
  • Windows系统和Linux系统服务器该如何远程连接

    程序架设离不开服务器 xff0c 而服务器跟我们家用电脑类似 xff0c 也都有操作系统 xff0c 目前市场广泛使用的服务器操作系统有Windows系统和Linux系统 那么我们改如果远程连接上去操作嗯 xff0c 接下来就给大家分享下常
  • HTML5集锦

    1 js获取当前域名 Url 相对路径和参数以及指定参数 https www cnblogs com wangdahai p 6221399 html 2
  • web on servlet stack-5.0.4

    翻译自https docs spring io spring docs 5 0 4 RELEASE spring framework reference web html 这部分文档涵盖Servlet Stack的支持 基于Servlet
  • flume1.8.0用户指南

    以下内容翻译自http flume apache org FlumeUserGuide html 一 引入 1 概览 Apache Flume是一个分布式 可靠的 可用的系统 xff0c 高效地从不同的源收集 聚集和移动大量的日志数据到一个
  • easyui框架combotree和combobox多选模式取值样例

    combotree html lt div class 61 34 conditions staff ue clear 34 br style 61 34 overflow visible float left line height 30
  • SVM-support vector machine

    classification Algorithms SVM nearest neighbors random forest regression Algorithms SVR ridge regression Lasso cluster A
  • cmd端口进程管理

    根据端口号查找进程 gt netstat aon findstr 8080 TCP 0 0 0 0 8080 0 0 0 0 0 LISTENING 10064 TCP 8080 0 LISTENING 10064 根据进程好查找进程 gt
  • javaweb相对路径和绝对路径

    绝对路径 xff1a 相对磁盘位置 示例 xff1a E workspace git metadata plugins org eclipse wst server core tmp2 wtpwebapps project app uplo
  • ActiveMQ 使用Ajax 收发消息实战

    原理简析 ActiveMQ 在版本发布包中包含了web sample的demo 其中就包含js与ActiveMQ交互的库文件amq js 以5 8 0版本为例 该文件目录为 apache activemq 5 8 0 webapps dem
  • HTML5中常用的标签居中方式

    span class hljs comment father width 300px height 300px background ccc display table cell vertical align middle text ali
  • windows-terminal 搭配 oh-my-posh 配置自定义终端

    目录 1 启动 powershell2 查看 powershell 版本3 升级 powershell4 修改执行策略5 powershell7 说明6 配置启动文件7 oh my posh 下载安装8 配置 oh my posh Them