1

我经常使用<leader>d去函数定义。当此定义来自另一个文件时,它会将我带到文件的导入行。

如何使用 jedi-vim 转到定义在该行上导入的函数的文件?

4

1 回答 1

3

听起来您的配置有问题...仔细检查您filetype的确实是python. 根据文档,这应该可以工作:

5.2.g:jedi#goto_command

功能:jedi#goto()

默认:<leader>d

转到定义(或分配)

这个函数首先尝试jedi#goto_definitions,然后回退到 jedi#goto_assignments内置模块。如果找不到任何东西,它会产生错误。注意:此实施可能会发生变化。参考:https ://github.com/davidhalter/jedi/issues/570

该命令试图找到光标下的函数/类的原始定义。就像 jedi#goto_assignments()函数一样,如果定义不在 Python 源文件中,它就不起作用。

jedi#goto_assignments()和 之间的区别在于jedi#goto_definitions()后者执行递归查找。以下面的模块结构为例:

# file1.py:
from file2 import foo

# file2.py:
from file3 import bar as foo

# file3.py
def bar():
    pass

jedi#goto_assignments()功能将带您到

from file2 import foo

file1.py 中的语句,而该jedi#goto_definitions()函数将带您一直到

def bar():

file3.py 中的行。

于 2016-10-24T18:35:14.247 回答