Vim with Powershell

前端之家收集整理的这篇文章主要介绍了Vim with Powershell前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在Windows上使用gvim。

在我的_vimrc我添加

set shell=powershell.exe
set shellcmdflag=-c
set shellpipe=>
set shellredir=>

function! Test()
  echo system("dir -name")
endfunction

command! -nargs=0 Test :call Test()

如果我执行这个函数(:Test)我看到无意义字符(非数字/字母ASCII字符)。

如果我使用cmd作为shell,它工作(没有-name),所以问题似乎是从powershell输出到vim。

有趣的是,这个工作伟大:

:!dir -name

正如这样:

:r !dir -name

更新:确认David提到的行为

如果在_vimrc中执行上面提到的set命令,则:test输出无效。但是,如果您直接在vim中而不是在_vimrc中执行它们,那么:测试按预期工作。

此外,我已经尝试使用iconv以防它是一个编码问题:

:echo iconv( system("dir -name"),"unicode",&enc )

但这没有什么区别。我可以使用错误的编码类型。

任何人都知道如何使这项工作?

这是一个黑客,但下面的作品在Vim 7.2。注意,我在CMD会话中运行Powershell。
if has("win32")
    set shell=cmd.exe
    set shellcmdflag=/c\ powershell.exe\ -Nologo\ -NoProfile\ -NonInteractive\ -ExecutionPolicy\ RemoteSigned
    set shellpipe=|
    set shellredir=>
endif

function! Test()
  echo system("dir -name")
endfunction

测试与以下…

>:!dir -name>:call Test()

猜你在找的Bash相关文章