搭配 Oh My Posh 使用 PowerShell
CMD 是很快,但是功能偏少,最近看到了 Oh-my-posh 项目,于是决定试试的 PowerShell
准备
设置 PowerShell 执行策略,允许运行脚本
1 | Set-ExecutionPolicy -ExecutionPolicy RemoteSigned |
AllSigned: 所有脚本都需要签名,包括本地脚本。Bypass: 不阻止任何操作,并且没有任何警告或提示。Default: 设置默认策略,默认为Restricted。RemoteSigned: 脚本可以运行,需要受信任的发布者对从 Internet 下载的脚本和配置文件的数字签名。Restricted: 允许单个命令,阻止运行所有脚本文件。
配置 Oh My Posh
安装
或是手动安装
1 | Set-ExecutionPolicy Bypass -Scope Process -Force; Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://ohmyposh.dev/install.ps1')) |
打开 PowerShell 输入,创建 oh my posh 配置文件
1 | notepad $profile |
保存下面内容
1 | oh-my-posh init pwsh | Invoke-Expression |
Windows 11 新版本的记事本如果提示找不到指定路径,可以直接输入 $profile 输出对应的路径,手动创建一下
或是直接在 文档 目录下创建一个 WindowsPowerShell 文件夹
然后重新打开一个 PowerShell 窗口,查看是否生效
修改主题
1 | Get-PoshThemes |
会获得所有主题的列表,并展示出来,然后按照提示选择或是编辑一个自己喜欢配置文件
下面是我自己使用的,与我在 Linux 下使用的 oh-my-zsh 有相同的样式
1 | { |
问题
VSCode 中打开终端提示
oh-my-posh : 无法将“oh-my-posh”项识别为 cmdlet、函数、脚本文件或可运行程序的名称
打开配置
1 | notepad $profile |
将开头的 oh-my-posh 修改为 oh-my-posh.exe 完整路径
PowerShell Tips
使用 &&
使用 ; 即可,例如
1 | hexo g; hexo s |
设置 alias
首先要允许脚本执行。
在配置文件 note $profile 中添加
1 | function 别名 { 需要替代的命令,可以包含空格 } |
例如:
1 | function hd {hexo clean; hexo generate; hexo deploy} |
启动 PowerShell 后可以直接运行 hd 替代
1 | hexo clean; hexo generate; hexo deploy |
Ref:
PowerShell 中使用 curl 无法接受参数
例如 curl ip.sb -4 报错
1 | Invoke-WebRequest : 找不到接受实际参数“-4”的位置形式参数。 |
这是因为 在 PowerShell 中,curl 是 Invoke-WebRequest 的别名,可以使用下面的命令移除该别名,直接使用 curl
1 | Remove-Item alias:curl |
如果需要持久生效,需要将该命令保存到 $profile 文件中。
.gitignore 不生效
如果在 Powershell 中使用 echo 创建 .gitignore,文件的编码是 UTF-16LE 不是 UTF-8
使用 UTF-8 编码重新创建即可