用于Python的Vim自动完成

我正在尝试在Vim中join自动完成function。 我已经使用了Vim的omnicompletion以及Pydiction 。 但在这两种情况下这个消息popup:

Omni完成(^ O ^ N ^ P)未find模式

我已经试过Vim的Omnicompletion与Python不起作用 。 但是这没有帮助。 有没有解决方法?

试试Jedi ! https://github.com/davidhalter/jedi-vim上有一个Vim插件。;

它在Vim中的工作比任何其他的Python都好。 它甚至支持重命名,转到等。最好的部分可能是它真的试图了解你的代码(装饰器,生成器等,只要看看function列表)。

如果你想Python的完成以及其他语言,这可能是一个不错的select。 https://github.com/Valloric/YouCompleteMe

python完成是基于jedi相同的jedi-vim。

我尝试了pydiction(没有为我工作)和正常omnicompletion(太有限)。 我按照build议看了Jedi,但发现它太复杂了。 我发现python模式 ,最终满足了我的需求。 谢谢@klen 。

AFAIK有三个选项,每个都有其缺点:

  1. youcompleteme :安装不友好,但如果你能够正常工作,效果会很好。 但是python3 不支持
  2. jedi-vim :最酷的名字,但打破你的撤消历史 。
  3. python模式做了更多的自动完成:折叠,语法检查,突出显示。 就个人而言,我更喜欢做好一件事的脚本,因为它们更容易pipe理(和replace)。 与其他两个选项不同的是,它使用绳索而不是绝对自动完成。

Python 3和撤消历史( gundo! )是我必须的,所以选项1和2都没有了。

在这个时候,你还完成了Python3。

我在Mac上使用带有+ python的MacPorts vim来运行它。 问题是MacPorts vim只能用+ python绑定到python 2.5,而我的扩展是在python 2.7下安装的。 使用pip-2.5安装扩展解决了它。