有没有办法在 powershell 中获取 vim 键绑定,就像在 bash 或 zsh 中使用以下命令一样
set -o vi
答案1
现在你有几个选择。使用默认控制台,你可以在 Windows 上运行 Vim(如果你安装了 git 或其他工具,你可能已经拥有它了)。为了使集成更加无缝,请将其放入你的 PowerShell 配置文件中:
$VIMEXEPATH = "c:\<location>\vim.exe"
Set-Alias vim $VIMEXEPATH
Set-Alias vi $VIMEXEPATH
我还建议将以下内容添加到您的vimrc
文件中,以便它使用 PowerShell 本身执行 shell 命令。
set shell=powershell
set shellcmdflag=-command
否则,目前唯一支持 Vi 模式的 ISE 是读取行现已推出PS画廊
有使用说明但简而言之,对于 VI 模式,您需要将以下行添加到您的 ISE 配置文件中。
Set-PSReadlineOption -EditMode vi
请注意,Vi 支持是在 1.2 版中添加的,但 1.1 版随 Windows 10 一起发布。您需要使用 -force 参数来更新发布(即手动安装)版本。
答案2
PSReadline 模块提供了此功能。
安装很简单,不确定要求是什么,但我认为至少 Windows 10 提供此方法。如果您没有 OneGet 或不确定,您可以按照以下说明操作PSReadline
在不提升权限的情况下安装 PSReadline
Install-Module PsReadline -Scope CurrentUser
检查您是否有 powershell 配置文件
Test-Path $PROFILE
如果你不创建一个
New-Item -Type File $PROFILE
在 ISE 中打开 $PROFILE
ise $PROFILE
添加此行
Set-PSReadlineOption -EditMode vi
重新加载 $PROFILE 或者仅重新启动 powershell
& $PROFILE
答案3
我不会发誓 Powershell 中没有允许这样做的未记录功能,但据我所知,答案是否定的。至少我从未在 Powershell 文档中看到任何表明这是可能的内容。
JR
答案4
powershell 引擎现在提供了钩子以使这变得相对简单,但我不知道有谁已经这样做了。
PSReadln 项目有一个新兴的 emacs 模式,尽管它还处于起步阶段。在 PSReadln 中添加 vi 模式是显而易见的事情,但我没有时间去做这件事。