Vim with Powershell
发布时间:2020-12-15 16:36:16 所属栏目:安全 来源:网络整理
导读:我在Windows上使用gvim。 在我的_vimrc我添加: set shell=powershell.exeset shellcmdflag=-cset shellpipe=set shellredir=function! Test() echo system("dir -name")endfunctioncommand! -nargs=0 Test :call Test() 如果我执行这个函数(:Test)我看到无
我在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() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容