由于我喜欢vim,我发现了两篇有趣的帖子,以便将PS与vim结合使用:
使用在PSISE中编辑的文件帮助从PSISE启动vim。
我发现了以下这一行:
$psISE.CurrentPowerShellTab.AddOnsMenu.Submenus.Add("edit with Vim",{$cur=$psISE.CurrentFile; saps "C:\Program Files (x86)\vim\vim74\gvim.exe" $cur.FullPath -wait; $psise.currentpowershelltab.files.remove($cur); $psISE.currentpowershelltab.files.add($cur.fullpath) },'Ctrl+Alt+v')
打开PSISE:
psise> ise $profile
将该行粘贴到PSISE打开的文件中。之后,您可以通过按 Ctrl - Alt - V 打开vim当前文件。
poshcomplete有助于在vim中完成PowerShell语言。
问题:
使用命令
启动服务器后:call poshcomplete#StartServer()
一切都好。该函数在poshcomplete中找到,声明了端口或其他细节的变量。
如果那时我尝试调用完成 Ctrl - X , Ctrl - O 之后,例如,“写”这个词我收到以下错误:
:omni completion(^ O ^ N ^ P)未找到模式。
但是,如果我检查从服务器返回的poshcomplete是什么(我使用httprequester的行“http:// localhost:1234 / poshcomplete?text = write”)我可以看到来自Web服务器的答案是正确的。实际上,我可以看到所有在其中“写”的命令。
我不明白从vim那边恢复数据以显示完成情况,因为我有两次插件工作,但后来它停止工作。
我认为在服务器暴露结果的那一刻与vim尝试获取结果之间存在同步问题。我可能错了,但如果有人可以提供帮助,我想纠正这个问题。
答案 0 :(得分:0)
你能修改vimfiles目录中的autoload/poshcomplete.vim吗?
let res = webapi#http#post("http://localhost:" . g:PoshComplete_Port . "/poshcomplete/",
\ {"text": buffer_text}, {}, s:noproxy_option)
+ echo 'Response: ' . res.content
return webapi#json#decode(res.content)
使用此代码按<C-X><C-O>
,显示来自服务器的响应。