Vim与Powershell

Vim with Powershell我正在Windows上使用gvim。 在我的_vimrc中,我添加了:
如果执行此功能(:Test),则会看到无用的字符(非数字/字母ASCII字符)。 如果我使用cmd作为shell,它可以工作(不带-name),所以问题似乎出在从powershell到vim的输出中。 有趣的是,这很好用:
这样做:
更新:确认David 提到的行为 如果在_vimrc中执行上述设置命令,则:Test输出无意义。但是,如果直接在vim中而不是在_vimrc中执行它们,:Test将按预期工作。 此外,我尝试使用iconv来解决编码问题:
但这没什么区别。我可能使用了错误的编码类型。 有人知道怎么做吗? 有点黑,但是以下内容在Vim 7.2中有效。注意,我正在CMD会话中运行Powershell。
经过以下测试...
我遇到了许多人在这里描述的类似问题。 具体来说,调用
手动从vim内执行将使powershell正常工作,但是只要我添加:
到我的vimrc文件,我将收到错误"无法打开临时文件...。" 问题在于,默认情况下,在修改shell时,vim会自动将shellxquote设置为",这意味着shell命令将如下所示:
此命令需要如下所示,以便vim读取临时文件:
在我的vimrc文件中将shellquote设置为"并取消设置shellxquote(即将其设置为空白)似乎可以解决我的所有问题:
我还尝试了进一步的工作,并使用system()调用对vim进行了脚本化: 中具有powershell的system() 我怀疑问题是Powershell为.NET使用了本机String编码,它是UTF-16加上字节顺序标记。 当在命令之间传递对象时,这不是问题。不过,这是外部程序的总PITA。 您可以通过输出文件通过管道传输输出,该文件确实支持更改编码,但是默认情况下仍格式化其所在终端的输出(arrgh!),因此类似" Get-Process ""将以椭圆形等截断。您可以指定Out-File使用的虚拟终端的宽度。 不确定此信息有多有用,但确实可以更清楚地说明问题。 尝试替换
与
编辑:尝试使用cmd.exe作为外壳,并将" powershell.exe "放在"-command " 之前 当我将其放入vimrc中时,初始示例代码对我来说工作正常。 所以现在我想弄清楚vimrc中的功能是什么。可能:
编辑:是的,看来可以做到。这些天,您可能还是想让VIM默认使用unicode进行编码... 有趣的问题-这里还有一些其他问题。如果不对我的.vimrc文件进行任何更改,则如果我随后在gvim中运行以下命令:
它的行为符合预期! 如果我对.vimrc文件进行了相同的更改(shell和shellcmdflag选项),则运行:echo system(" dir -name ")将返回无意义的字符! n n n n 试试看 说明: Vim使用tempname()生成system()读取的临时文件路径。 如果 我提出了一种骇人听闻的解决方案。它并不能真正解决问题,但是可以通过某种方式完成工作。 此Vim插件可自动创建临时脚本文件,通过cmd.exe进行powershell调用并粘贴结果。它不如vim正确处理powershell很好,但是它可以工作。 我不使用VIM,但Powershell的默认输出是Unicode。记事本可以读取unicode,您可以使用它来查看是否获得期望的输出。 |
相关内容
百度输入法怎么添加城市词库
百度输入法怎么添加城市词库,词库, ...
添加删除程序不能做如何添加和删除程序错误的解
添加删除程序不能做如何添加和删除程序错误的解决方案,,最近,一...
微软WindowsXP-不朽的传说
微软WindowsXP-不朽的传说,,据国外媒体报道,目前,微软本身存在一...
在右键添加新建wps|将wps添加到鼠标右键的新建
在右键添加新建wps|将wps添加到鼠标右键的新建中去,右键,新建...
金蝶旗舰版如何添加会计科目|金蝶如何加上会计
金蝶旗舰版如何添加会计科目|金蝶如何加上会计科目的项目辅...
电脑添加内存|电脑添加内存条后需要怎么设置
电脑添加内存|电脑添加内存条后需要怎么设置,,1. 电脑添加内存...
Windows11预览版更新失败怎么办?|win11预览版更
Windows11预览版更新失败怎么办?|win11预览版更新卡在35%什么...
微软Win10搜索Web内容强制使用Edge和Bing|windo
微软Win10搜索Web内容强制使用Edge和Bing|windows10自带的ed...
Windows无法在任务栏上显示音量控制图标,而不显
Windows无法在任务栏上显示音量控制图标,而不显示,,失败:我的Win...
怎么设置主键|access怎么设置主键
怎么设置主键|access怎么设置主键,,access怎么设置主键Access...
为什么SQL Sever2005安装完成后用windows身份登
为什么SQL Sever2005安装完成后用windows身份登录不上去,身份...
word添加批注的快捷键|word怎么添加批注快捷键
word添加批注的快捷键|word怎么添加批注快捷键,,1. word怎么添...
MacChrome打开HTTPS证书错误解决方案
MacChrome打开HTTPS证书错误解决方案,,评论:在Chrome浏览器下,总...
金蝶cloud如何添加报表|金蝶cloud怎样进行报表
金蝶cloud如何添加报表|金蝶cloud怎样进行报表管理,,1.金蝶clo...
mac苹果电脑和windows|mac和笔记本
mac苹果电脑和windows|mac和笔记本,,1. mac和笔记本个人认为同...