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