1

在使用来自 GVim 的令人惊叹的 Python Jedi 插件时,我开始注意到函数完成提示弹出窗口的一些奇怪行为(据我所知,不是自动完成)。

首先,虽然函数参数帮助弹出窗口是可见的,但 GVim 输入变得滞后,即使对于内置函数和标准类型也是如此。一旦弹出窗口关闭,滞后就会消失。自动完成似乎在所有级别上都可以正常工作,这种滞后似乎只适用于函数助手。

其次,我最近遇到了一个弹出窗口在缓冲区中冻结的情况,即使它应该已经关闭,并且实际上替换了文件中该位置的缓冲区内容。我完成了我正在处理的功能,然后用于:/__init跳转光标位置。我的窗口向下滚动,但显然原始功能弹出窗口没有清除,并成为我文本中的固定装置。

当我保存文件时,该行被弹出内容替换(当 python 尝试执行该行时显然抛出了一个异常)。回到文件中的那个位置,重新激活该功能帮助弹出,然后再次关闭它修复了冻结的弹出文本。

这些问题有关系吗?

这是我应该更改的激进配置设置吗?老实说,这些弹出窗口有时对我来说有点过于激进,那么我如何在配置中禁用/热键绑定它们呢?


我只在 GVim 中经历过这种行为。也许它发生在控制台vim中,但我没有尝试重现这种情况,所以我不知道。

GVim 情况:

  • 7个标签打开
  • 每个选项卡通常有两个垂直窗口
  • 每个窗口通常是一个单独的 python 模块
4

1 回答 1

2

jedi-vim 的问题跟踪器上有很多关于此的问题:https ://github.com/davidhalter/jedi-vim/issues/217 。整个滞后的情况正在慢慢好转。

最简单的解决方案之一是禁用调用签名:

g:jedi#show_call_signatures = "0"

截至目前(我刚刚合并了它),还有另一种显示调用签名的方法:

调用签名可以在缓冲区中显示为弹出窗口(设置为 1,默认值),其优点是更易于引用,或者在 Vim 的命令行中与函数调用对齐(设置为 2),这可以提高 Vim 撤消历史的完整性。

如果你更喜欢这个,你可以试试(但你必须更新 jedi-vim):

g:jedi#show_call_signatures = "2"
于 2014-12-19T13:25:00.327 回答