[Windows Powershell] 使用↑↓来搜索历史记录

迫于oh-my-posh冷启动时加载实在是太慢了,因此换成了starship.

From Zsh To PowerShell

因为一些原因,我将个人的开发环境从Hackintosh迁移到了Windows11,并尝试在Windows11上建立我熟悉的工作流。
在macOS平台, 我喜欢使用oh-my-zsh来增强Zsh的体验,在Windows平台,替换CMD的是Powershell,作为一个现代化Shell,PS也有相应的增强套件,即oh-my-posh,也通过插件的方式实现了多彩主题,Git展示等功能。

image-20211103190626019

利用↑键进行搜索

在一般Shell中。↑↓键的默认行为是切换历史记录,在oh-my-zsh中被配置为了以当前缓冲区的字词进行历史记录搜索并切换搜索结果,大大提高了搜索效率。然鹅posh中没有配置这一功能,那么怎么实现这个功能呢?

我们知道 Powershell作为后起之秀,借鉴了很多已有的Shell的功能与实现。我们来看看在Zsh中怎么实现这一功能:

bindkey '^[[A' up-line-or-search
bindkey '^[[B' down-line-or-search

同时我知道这个功能叫做Reverse Search.

然后一通搜索,我们找到了Powershell的实现方式:

Set-PSReadLineOption -HistorySearchCursorMovesToEnd
Set-PSReadlineKeyHandler -Key UpArrow -Function HistorySearchBackward
Set-PSReadlineKeyHandler -Key DownArrow -Function HistorySearchForward

加入到profile.ps1中即可。

(什么?你不知道这个文件在哪里?在PowerShell中输入notebook $PROFILE就可以在Notebook中编辑了。

BTW: Use Sudo On Windows

如果你在Windows命令行中怀念*nix下sudo的快捷,那么我推荐 gsudo,安装后你就可以痛快的sudo + command了,gsudo会负责来完成权限申请与环境设置。
Github: https://github.com/gerardog/gsudo

tag(s): Win
show comments · back · home
Edit with markdown