我经常使用<leader>d
去函数定义。当此定义来自另一个文件时,它会将我带到文件的导入行。
如何使用 jedi-vim 转到定义在该行上导入的函数的文件?
听起来您的配置有问题...仔细检查您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 中的行。