【问题标题】:Jedi Vim Python subclasses are not detected on TAB-completion在 TAB 完成时未检测到 Jedi Vim Python 子类
【发布时间】:2015-07-05 18:34:08
【问题描述】:

问题在于 Arch (1) 和 Debian Jessie (2),其中:

1.

> uname -r
4.0.5-1-ARCH
> echo $PYTHONPATH
/usr/lib/python2.7/
  1. Debian Jessie 没有设置 PYTHONPATH。

我的vim是用python编译的。

:python import sys; print(sys.version)
2.7.10 (default, May 26 2015, 04:16:29)
[GCC 5.1.0]

我尝试了以下 Arch Linux 软件包:

> pacman -S python2-jedi vim-jedi

补全适用于类,但不适用于子类。

import os          # os is built-in library.
os.                # ycm does not complete members of this class.

我删除了它们并下载了 git 包。

> cd ~/.vim/bundle/jedi-vim/jedi/test/ && ./run.py
Summary: (0 fails of 962 tests) in 18.819s

> cd ../ && ./setup build && ./setup install

同样,补全适用于类,但不适用于子类。

我之前的问题是从 Vim YouCompleteMe Python subclasses are not detected on TAB-completion in Arch Linux 发送到 jedi-vim 的

【问题讨论】:

  • 使用一次补全后能否提供:mes:scriptnames:set omnifunc?顺便说一句:jedi-vim 和 YCM 都在后台使用 Jedi。
  • 感谢您的宝贵时间。是的,我知道 jedi-vim 和 YCM 都依赖 Jedi。我在两者中都张贴了以获得知名度。这是输出pastebin.com/raw.php?i=mk8gxDzb
  • 奇怪,我的:scriptnames 还加载了不少jedi-vim 的东西,其中jedi-vim/autoload/jedi.vim,肯定应该在里面。
  • 我认为它是在 14: 加载的。此外,完成一次后,我有不同的输出。从我的新输出pastebin.com/raw.php?i=9mDXfbLM 中查看 14、25、26、28、31。这两个输出都来自 Debian Jessie。
  • @DaveHalter 我刚刚意识到这是由于我的不理解。在下面检查我的答案!

标签: python linux vim tab-completion jedi-vim


【解决方案1】:

我刚刚意识到由于我的不理解而犯了一个错误。我试图通过以下方式导入:

当我使用 ipython 和这样的制表符完成时,这是很自然的:

这是在 python 脚本中导入模块的错误方法。这是正确的方法:

最后,Jedi-Vim 插件完美运行。如果与不可用的导入相关的不确定性,您可以通过以下方式验证您的导入:

:python import sys; print(sys.path)

然后在运行时添加缺少的目录以测试它们的缺失是否导致问题。

:python import sys; sys.path.append("/path/to/dir")

在我的例子中,os.py 位于 /usr/lib/python2.7/

我希望这能为未来的 Jedi-Vim 用户澄清这一点。

【讨论】:

    【解决方案2】:

    老问题,但如果您使用虚拟环境,我已经找到了修改 sys.path 的替代方法。

    您可以改为在您的 <virtualenv>/lib/<python>/site-packages 文件夹中创建一个 .pth (https://docs.python.org/2/library/site.html) 文件,该文件指向您源的根目录,例如如果我的源位于 /user/123/python-proj/source 文件夹中,而我的虚拟环境位于 /user/123/python-proj/venv 文件夹中

    echo '/user/123/python-proj/source > /user/123/python-proj/venv/lib/python3.5/site-packages/my-source.pth'
    

    确保先激活虚拟环境,然后启动 vim,jedi 应该能够找到您的代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-21
      • 2017-12-28
      相关资源
      最近更新 更多