【问题标题】:Autocomplete blender script using jedi-vim使用 jedi-vim 自动完成搅拌机脚本
【发布时间】:2016-10-13 17:59:31
【问题描述】:

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

所以在搅拌机控制台中,我将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. 给我:

但是输入 bpy.context. 仍然给我:-- Omni completion (^O^N^P) Pattern not found

版本:

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

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

【问题讨论】:

  • 你想展示什么?
  • @SibiCoder bpy.context 命名空间中的函数和变量
  • 你能举个例子 sn-p 并解释一下,告诉我你想要什么吗?
  • @SibiCoder 除了:我想在编写搅拌器脚本时在 Vim 中使用自动完成功能之外,我想不出更好的方法来描述我的问题。所以我需要帮助来设置 jedi-vim。
  • 您可能需要设置路径。告诉我你的文件在哪里,你想展示什么作为示例(函数或变量),另外,将:set path 的输出放在这里。另外,在此处添加文件的路径。

标签: python vim blender jedi-vim


【解决方案1】:

我刚刚意识到希望不大,因为您已经在与已编译的 (C/C++) 模块通信。

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

我正在为 Jedi 计划一个插件系统,以便在此类用例中也可以使用 Jedi。但这可能需要两年时间。

【讨论】:

  • 不。那没有给出任何有用的输出。我就等两年吧。谢谢。
  • Dave - 我希望你会收到更多关于搅拌机自动完成的问题,因为这会更频繁地出现。请参阅我对此的回答,因为搅拌机的 bpy 模块不是普通的 python 模块,需要在项目之外进行额外设置。
【解决方案2】:

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

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

this answer 中,您还可以找到一些指向其他答案的链接,这些链接包含将 eclipse 和 pycharm 与搅拌机一起使用的提示,可能会有所帮助。

【讨论】:

    【解决方案3】:

    Blender Python 文本编辑器,IDE 有这个新工具 Bacutor,有intellisensesyntax Highlight 等等

    http://bacutor.freeiz.com

    【讨论】:

    • 尝试突出显示关键字并明确格式,这将有助于为其他人找到答案
    猜你喜欢
    • 1970-01-01
    • 2012-02-07
    • 2016-05-24
    • 2017-06-15
    • 1970-01-01
    • 2019-09-04
    • 1970-01-01
    • 2011-12-03
    • 2017-09-07
    相关资源
    最近更新 更多