使用jedi-vim自动完成blender脚本

时间:2016-06-13 10:43:42

标签: python vim blender jedi-vim

我最近将jedi-vim添加到我的插件库中。它适用于标准模块,但无法找到bpy和bmesh。

所以在blender控制台中我获取了print(sys.path)的输出并将其添加到.lvimrc文件中的vimscript函数中,如下所示:

function BpyPath()
    python sys.path.append('/home/john/src/blender-2.77-linux-glibcl211-x86_64/2.77/python/lib/python3.5')
    ...
endfunction

现在效果更好。输入bpy.会给我:

enter image description here

但输入bpy.context.仍然可以让我: - Omni完成(^ O ^ N ^ P)未找到模式

版本:

  • Blender:2.77a 64位linux
  • 操作系统:Fedora 22
  • Python:2.7.10
  • Vim:7.4

我不是一个非常高级的python或vim用户,所以感谢任何帮助。

3 个答案:

答案 0 :(得分:2)

我刚才意识到没有太多的希望,因为你已经在谈论编译的(C / C ++)模块。

如果dir(bpy.context)(在Python shell中)没有为您提供所需的完成,Jedi也无法推断出这些信息。如果dir为您提供合理的信息,只需在Jedi问题跟踪器中创建一个问题。这将是一个错误,IMO。

我正在为Jedi规划插件系统,以便将Jedi用于此类用例。但这可能需要两年时间。

答案 1 :(得分:2)

这经常会让人们失望。 Blender的bpy模块是一个由blender中的源代码创建的编译模块。模块的二进制文件被合并到blender的二进制文件中,并且不能在blender中的python解释器之外使用。

可以自己编译blender并启用一个选项来构建blender as a python module,您可以将其导入到任何python解释器中,并且可能是您正在寻找的解决方案。

this answer中,您还可以找到一些其他答案的链接,这些答案提供了使用eclipse和pycharm与blender的提示,可能会有所帮助。

答案 2 :(得分:-1)

Blender Python文本编辑器IDE中有一个新工具 Bacutor ,其中有intellisensesyntax Highlight以及更多

http://bacutor.freeiz.com