0

因为我喜欢 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-使用 vim 打开当前文件V

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

    1. 我已经安装了 poshcomplete vim 插件。我已经按照这个链接安装了 webapi-vim 和 vimproc.vim 。

问题:

使用命令启动服务器后

:call poshcomplete#StartServer()

一切都好。该函数在 poshcomplete 中找到,声明了端口或其他细节的变量。

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

: 全方位补全(^O^N^P) 找不到模式。

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

我不明白 vim 方面发生了什么恢复该数据以显示它以完成,因为我有两次插件工作,但后来它停止工作。

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

4

1 回答 1

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

于 2015-11-06T15:46:32.267 回答