使用 jedi-vim 使用 gobject introspection 在 python 中自动完成自己的 gobject 派生库

如何解决使用 jedi-vim 使用 gobject introspection 在 python 中自动完成自己的 gobject 派生库

我正在尝试创建一个使用 gobject 库作为基础的共享 C 库。所以我的对象在 GObject 中继承自 GObject。 GObject 允许通过 GObject 自省绑定到所有不同的脚本语言,例如 Python。然后从 python 可以从 gi.repository 导入库。

import gi
gi.require_versions({'Edf': '0.0','GLib': '2.0'})
from gi.repository import Edf

Vim 通过 jedi-vim 提供自动补全。对于使用 GObject 内省的其他库,例如 GLib 和 GTK,这是​​开箱即用的。我想使用 pytest 来运行库的一些单元测试。我非常想使用 vim 编辑我的文件,并为我自己的库自动完成。 因此,如果我按上述方式导入库,我确实会自动完成 GLib,但不会自动完成我的 Edf 模块。

我试图通过将 GI_TYPELIB_PATH 环境变量设置为包含我的 Edf.typelib 文件的目录来使自动完成工作。此外,我创建了一个 debian 包并将库安装到 /usr/lib/x86_64-linux-gnu/ 并将 typelib 安装到 /usr/lib/x86_64-linux-gnu/girepository-1.0/,这两种方法都足以在 REPL 中获得自动完成,例如 bpython3、ipython3 甚至 python REPL,但是我无法在 vim 中使用 jedi-vim 完成。

我会很高兴看到它起作用。有没有人有任何提示可以让它工作?

此致并感谢您的关注。

解决方法

由于我打算使用的 python 版本与调用的版本不匹配,我遇到了类似的错误。

确保 jedi 使用的是预期版本的 python。例如。将 let g:jedi#force_py_version = 3 添加到您的 .vimrc

,

我觉得问题是你的vim版本太低了,建议你升级到vim 7.4并确保它有开启python功能,如果你想要自动完成功能,我建议你可以试试你完成我,功能更强大,需要Vim 7.3.584+,现在vim 7.4出来了,很容易安装,可以这样安装,

如果这不是问题,请尝试使用病原体安装 jedi-vim,希望它可以工作。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?