我有一个文件,例如a.pl
有此方法调用:
add_location(@crew);
实际定义在同一个文件中。如果我这样做:CTRL + ]
光标跳转到定义。如果我这样做:gf
我得到:
E447: Can't find file "add_location" in path
如果我:pwd
,我会获得当前的工作目录。抱怨的路径是什么?函数定义在同一个文件中。
答案 0 :(得分:6)
<C-]>
命令转到光标下的标记;你似乎有一个有效的标签数据库(即之前已经运行ctags
),并且有一个名为add_location
的标签。
gf
命令转到光标下的文件,即它将add_location
视为文件名(可能附加.pl
之类的后缀(参见{ {1}}),并在:help 'suffixesadd'
指定的目录中搜索该内容。
所以,基本上,你正在使用错误的命令来完成工作; 'path'
是对的。请注意,如果该位置位于同一文件中,您还可以使用<C-]>
命令转到下一个匹配项;这对于没有标记数据库很有用,因此无法使用功能更强大的*
命令。