搭配 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
编码重新创建即可