把PowerShell变成zsh
前言
在 macos 下用顺手 zsh 之后就再也回不去了,回到家经常会在 PowerShell 里面习惯性的敲 yd
。本来打算把 zsh 装 Windows 上,但是有点麻烦,因此花了点时间研究了一下如何在 PowerShell 上面复刻部分 zsh 的体验。
可以结合PowerShell美化一起食用。
特性
这里主要迁移我比较常用的几个特性,基本上都是基于 Oh My Zsh 的。
Git 缩写插件
找到了一个复刻大部分原版插件功能的 PowerShell 版本模块:https://github.com/gluons/powershell-git-aliases ,按照里面的教程安装即可:
- 直接在 PowerShell 中使用
Install-Module git-aliases -Scope CurrentUser -AllowClobber
安装;如果你有 scoop 也可以在添加extras
桶后使用scoop install git-aliases
安装; - 使用
notepad $profile
打开 PowerShell 配置文件,添加Import-Module git-aliases -DisableNameChecking
。
yarn 缩写
yarn 缩写命令应该是我用的最高频的特性了,也是最导致不习惯的一大痛点。这里没找到对应的 PowerShell 模块,因此就手动实现了一些:
- 使用
notepad $profile
打开 PowerShell 配置文件,添加如下命令及函数定义:set-alias y yarn function ya { yarn add $args } function yad { yarn add --dev $args } function yb { yarn build $args } function yd { yarn dev $args } function yga { yarn global add $args } function ygrm { yarn global remove $args } function yrm { yarn remove $args } function y { yarn $args }
没有实现全部的缩写规则,理论上是可以写一个转换规则把 zsh 插件源码里面的全部转成 PowerShell 函数并封装成模块的,懒的搞😧。
z
命令
z 命令可以通过路径关键词快速跳转到曾经导航过的目录。例如对于路径 D:\Desktop\Projects\EdgelessPE\ept
,只要你曾经在安装 z
命令之后 cd
进过这个目录,那么之后在任意目录内都可以通过 z ept
快速跳转回这个路径,免去手动 cd
的痛苦。
这个命令有对应的 PowerShell 模块实现:https://github.com/badmotorfinger/z ,按照里面的教程安装即可:
- 执行
Install-Module z -AllowClobber
; - 使用
notepad $profile
打开 PowerShell 配置文件,添加Import-Module z
(PS:实测似乎不加也行?但是 README 里面是要求加的)。
语法高亮
语法高亮可以帮助你在输入命令的同时检查输入是否正确,正确的内容会以绿色显示,错误的内容会以红色显示。
找到了一个 PowerShell 的语法高亮实现:https://github.com/digitalguy99/pwsh-syntax-highlighting ,但是用起来有点小问题,有时候没法即时显示输入是否正确,没有 zsh 上面的体验丝滑:
- 以管理员身份启动 PowerShell,执行
Install-Module syntax-highlighting
; - 使用
notepad $profile
打开 PowerShell 配置文件,添加Import-Module syntax-highlighting
。
(AD)rsproxy
RsProxy 是字节跳动基础架构团队搭建的公共 rustup & crates.io 镜像,能够有效解决部分地区访问 Rust 镜像源速度慢的问题:
- 使用
notepad $profile
打开 PowerShell 配置文件,添加以下命令:Set-Variable RUSTUP_DIST_SERVER="https://rsproxy.cn" Set-Variable RUSTUP_UPDATE_ROOT="https://rsproxy.cn/rustup"
- 其他步骤同官网
此页面内容由Kanuo原创,转载请申明出处
本文链接:https://www.edgeless.top/%E6%8A%8APowerShell%E5%8F%98%E6%88%90zsh/