将Powershell设置为Vim的shell:命令似乎没有正确传递

Lok*_*sus 7 vim powershell

我正在尝试在 Windows 上的 GVIM 中将 Powershell 设置为 shell。

当我这样做时:!ls,我会看到一个vimrun.exe窗口,其中包含我正在运行的命令,该命令似乎什么也没做。它会保持这样,直到我关闭它。

vimrun.exe 输出


我的.vimrc配置:

set shell=powershell
set shellcmdflag=-command
set shellquote=\"
set shellxquote=
Run Code Online (Sandbox Code Playgroud)

没有什么会干扰它:当我这样做时,:verbose set shell? shellcmdflag? shellquote? shellxquote?我会得到上面设置的值。

当我删除vimrun.exefrom时%PATH%,我得到一个 Powershell 窗口,它是空的(其中没有输出),具有相同的行为。

命令本身很好 - 当我从 cmd 手动执行它时,它按预期工作。

当 Vim shell 设置为 cmd 时,一切都会按预期工作。

有些问题看似相关,但并不相同:

Lok*_*sus 4

结果发现问题出在 32 位 powershell 在我的系统上无法正常工作(尚未弄清楚原因)。我改为set shell=powershell

set shell=C:\\WINDOWS\\sysnative\\WindowsPowerShell\\v1.0\\powershell.exe
Run Code Online (Sandbox Code Playgroud)

这会启动 64 位 powershell,它在我的系统上运行良好。