问题标签 [jedi-vim]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
6442 浏览

python - jedi-vim 是否与 YouCompleteMe 冲突?

YouCompleteMe (YCM) 和 jedi-vim 是两个提供自动补全功能的 vim 插件,它们都在 Python 下使用了 jedi。然而,两者都很好,因为除了文档之外,jedi-vim 还提供了一些有用的功能,比如“转到定义”和“查看文档字符串”,而 YouCompleteMe 可以与其他语言一起使用。

由于两者都提供 Python 自动完成功能,是否需要任何特殊配置来防止两个插件发生冲突?或者 jedi-vim 的自动完成器会简单地覆盖 Python 中的 YCM?

0 投票
1 回答
842 浏览

jedi-vim - 上班时遇到的严重问题 jedi vim (windows)


我已经在 stackoverflow 和其他页面上阅读了很多类似主题的主题和标签 jedi-vim。
但是这个问题仍然让我无法做我的实际工作:-/。
到目前为止我已经来回尝试了几个步骤,但基本上我做了以下操作:
1.安装最新的Python3.4(32bit)
2.得到这个预编译的VIM:
(https://bitbucket.org/Haroogan/vim- for-windows/downloads/vim-7.4.417-python-2.7-python-3.4-ruby-2.0.0-lua-5.2-perl-5.18-windows-x86.zip) (32Bit)
3. 已安装 Pathogen
4. 已安装Flake8 成功
5. 使用 pip 安装 Jedi(系统范围?)
6. 从 github.com/davidhalter/jedi-vim 获取 Jedi-vim 并将 dir jedi-vim-master 解压缩到:
6.1。$HOME/vimfiles/bundle/ 仅
6.2。$VIM/vimfiles/bundle/ 仅
6.3。两个都

python 和 python3 都可以工作(在我只有 python3 之前)。
所以
":python3 import sys; print(sys.version)" 和
":python2 import sys; print(sys.version)" 给出了输出。
在我的 vimrc 中,我强制 jedi-vim 使用 python3:
“let g:jedi#force_py_version = 3”

现在实际的错误如下:当我输入例如“self”时。在 *.py 文件中,他搜索了半秒并说:
E117: unknown function: pythoncomplete#Complete
-- Omni completion (^O^N^P) Pattern not found

当我想调用一个函数并输入参数时,会弹出/淡入一些东西,但这是一些不清楚的迹象,而不是实际参数。 看这里

其他信息:
:scriptnames : D:\tools\v\plugin\getscriptPlugin.vim
D:\tools\v\plugin\gzip.vim
D:\tools\v\plugin\matchparen.vim
D:\tools\v\plugin \netrwPlugin.vim
D:\tools\v\plugin\rrhelper.vim
D:\tools\v\plugin\spellfile.vim
D:\tools\v\plugin\tarPlugin.vim
D:\tools\v\plugin\tohtml .vim
D:\tools\v\plugin\vimballPlugin.vim
D:\tools\v\plugin\zipPlugin.vim
D:\tools\v\menu.vim
D:\tools\v\lang\menu_de.latin1.vim
D:\tools\v\lang\menu_de_de.latin1.vim
D:\tools\v\autoload\paste.vim
D:\tools\v_gvimrc
D:\tools\v\syntax\syntax.vim
D:\tools\v\syntax\synload.vim
D:\tools\v\syntax\syncolor.vim
D:\tools\v\filetype.vim
H:\vimfiles\autoload\pathogen.vim
D:\tools\v \ftoff.vim
D:\tools\v\syntax\nosyntax.vim
D:\tools\v\ftplugin.vim
D:\tools\v\indent.vim
D:\tools\v\syntax\python.vim
D: \tools\v\ftplugin\python.vim
D:\tools\v\bundle\jedi-vim-master\ftplugin\python\jedi.vim
D:\tools\v\bundle\jedi-vim-master\autoload\jedi .vim
D:\tools\v\bundle\vim-flake8-master\ftplugin\python_flake8.vim
H:\vimfiles\bundle\vim-flake8-master\ftplugin\python_flake8.vim
D:\tools\v\indent\python .vim

我的 vimrc: https ://drive.google.com/file/d/0Bwb4EPY-atMdOWhnOGJiNmxYbGM/view?usp=sharing

0 投票
0 回答
165 浏览

python - 如何让 JEDI 识别 Python C 扩展

我目前正在用 C 语言开发一个 Python 模块,但我无法弄清楚如何让 JEDI “看到”我的模块。

我已经在 C 代码中设置了所有文档字符串并在 my 中设置了每个字段setup.py,但是当我编辑example.py用于测试的文件并尝试使用Shift+在 vi​​m 中显示文档时K,我收到一条错误消息:

例外,这不应该发生。

回溯(最近一次通话最后):

文件“/home/beben/.vim/bundle/jedi-vim/jedi_vim.py”,第 268 行,在 show_documentation

定义 = script.goto_definitions()

文件“/home/beben/.vim/bundle/jedi-vim/jedi/jedi/api/init .py ”,第 365 行,在 goto_definitions

names = [s.name for s in definitions] AttributeError: 'NoneType' object has no attribute 'name'

没有找到相关的文档。

阅读jedi的文档后,我了解到它用于Pydoc收集有关模块的信息。当我运行Pydoc mymodule时,文档会正确显示。

我还需要在我的代码中添加什么内容才能被 JEDI 识别吗?

0 投票
0 回答
562 浏览

python - 无法在导入的模块上使用 jedi vim

可以说我有下一个结构

我现在编辑 run.py:

jedi vim 在 MyClass1 上运行良好,但是当我尝试 MyClass2 中的任何内容时,它只会显示错误:

如何使它在 myclass2 上完成?

0 投票
2 回答
907 浏览

python - 在 TAB 完成时未检测到 Jedi Vim Python 子类

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

1.

  1. Debian Jessie 没有设置 PYTHONPATH。

我的 vim 是用 python 编译的。

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

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

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

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

我之前从Vim YouCompleteMe Python 子类发送我到 jedi-vim 的问题在 Arch Linux 中的 TAB 完成中未检测到

0 投票
1 回答
186 浏览

python - 在 Jedi 中获取建议函数的返回类型

我正在尝试改进使用 YouCompleteMe(使用 Jedi)显示 python 完成的方式。目前它只显示完成和“完整路径”:

理想情况下,我希望它显示函数的签名和推断的返回类型(就像您使用 C/C++ 完成一样)。

有没有办法从jedi.api.classes.Completion对象(代表一个函数)到该函数的返回类型?

Jedi 在某处拥有该信息,因为如果您调用该函数并完成它obj.function().|,它知道function返回什么类型并提供正确的完成。

0 投票
2 回答
5240 浏览

vim - jedi-vim如何跳转到其他文件中的函数定义

我是新手jedi-vim,不知道如何跳转其他文件中的函数定义。

jedi-vim文档是:

以下是其中的一部分:

注意:可能会发生变化!

let g:jedi#goto_command = "<领导>d"

让 g:jedi#goto_assignments_command = "<领导>g"

让 g:jedi#goto_definitions_command = ""

让 g:jedi#documentation_command = "K"

让 g:jedi#usages_command = "<领导者>n"

让 g:jedi#completions_command = "< C 空间>"

let g:jedi#rename_command = "<领袖>r"

我想知道什么是<leader><C-Space>意味着什么以及如何在 VIM 上使用这些命令

0 投票
1 回答
430 浏览

python - Jedi-vim 仅自动插入匹配选项(需要禁用它)

问题是当 jedi-vim 只找到一个自动完成匹配项时,它会自动插入该匹配项。我需要以某种方式禁用此功能。

我已经尝试过的:

  • let g:jedi#smart_auto_mappings = 0,但它只禁用自动from ... import ...插入;
  • let g:jedi#popup_on_dot = 0,但它也会禁用点选项上的弹出窗口(所以我需要输入<C-space>才能看到它)。
  • let g:jedi#popup_select_first = 0也无济于事,因为它只会禁用弹出菜单中的第一个匹配选择,但不会阻止自动插入唯一匹配。

另外我没有安装任何其他自动完成插件。如果有帮助,是我的 .vimrc 文件

有没有办法禁用仅匹配功能的自动插入但保持弹出点?

PS您可以使用此示例重新创建此行为:

然后,当您键入A并按点时,i将自动插入。

0 投票
2 回答
238 浏览

python - 使用 jedi-vim 自动完成父对象

jedi-vim用于完成,它做得很好。但由于某种原因,我在完成父对象时遇到了麻烦。

例如:

有没有我应该添加的设置,.vimrc或者这就是绝地的工作方式?我还挖掘了一些问题跟踪器,但没有找到有用的东西。

0 投票
1 回答
1258 浏览

vim - jedi-vim:来自非标准路径的模块

我有不同的本地 python 安装,它们是用hashdist 构建的。另一方面,vim 安装在系统范围内(ArchLinux),引用系统的 python3。

我想将绝地的自动完成功能用于一个孤立的 python 构建的包。some/path/lib/python2.7/site-packages系统python(因此,vim)不知道的模块所在的位置。此外,vim 是为 python3 编译的;那个“其他版本”是python2.7。

有没有办法做到这一点?如果我也可以选择一个特定的包裹,那也很好。由于 python 版本冲突,$PYTHONPATH 不起作用(至少)。