如何调试poshcomplete vim插件的vim部分?

时间:2015-09-23 06:57:29

标签: powershell vim completion

由于我喜欢vim,我发现了两篇有趣的帖子,以便将PS与vim结合使用:

  1. 使用在PSISE中编辑的文件帮助从PSISE启动vim。

    1. 我发现了以下这一行:

      $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')

    2. 打开PSISE:

      psise> ise $profile
      

      将该行粘贴到PSISE打开的文件中。之后,您可以通过按 Ctrl - Alt - V 打开vim当前文件。

  2. poshcomplete有助于在vim中完成PowerShell语言。

    1. 我已经安装了poshcomplete vim插件。我按照this link安装了webapi-vim和vimproc.vim。
  3. 问题:

    使用命令

    启动服务器后
    :call poshcomplete#StartServer()
    
    一切都好。该函数在poshcomplete中找到,声明了端口或其他细节的变量。

    如果那时我尝试调用完成 Ctrl - X Ctrl - O 之后,例如,“写”这个词我收到以下错误:

      

    :omni completion(^ O ^ N ^ P)未找到模式。

    但是,如果我检查从服务器返回的poshcomplete是什么(我使用httprequester的行“http:// localhost:1234 / poshcomplete?text = write”)我可以看到来自Web服务器的答案是正确的。实际上,我可以看到所有在其中“写”的命令。

    我不明白从vim那边恢复数据以显示完成情况,因为我有两次插件工作,但后来它停止工作。

    我认为在服务器暴露结果的那一刻与vim尝试获取结果之间存在同步问题。我可能错了,但如果有人可以提供帮助,我想纠正这个问题。

1 个答案:

答案 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>,显示来自服务器的响应。