为什么gf不能用于vim但是ctrl +]有效?

时间:2013-05-19 19:51:01

标签: linux vim vi ctags

我有一个文件,例如a.pl有此方法调用:

add_location(@crew);

实际定义在同一个文件中。如果我这样做:CTRL + ]光标跳转到定义。如果我这样做:gf我得到:
E447: Can't find file "add_location" in path

如果我:pwd,我会获得当前的工作目录。抱怨的路径是什么?函数定义在同一个文件中。

1 个答案:

答案 0 :(得分:6)

<C-]>命令转到光标下的标记;你似乎有一个有效的标签数据库(即之前已经运行ctags),并且有一个名为add_location的标签。

gf命令转到光标下的文件,即它将add_location视为文件名(可能附加.pl之类的后缀(参见{ {1}}),并在:help 'suffixesadd'指定的目录中搜索该内容。

所以,基本上,你正在使用错误的命令来完成工作; 'path'是对的。请注意,如果该位置位于同一文件中,您还可以使用<C-]>命令转到下一个匹配项;这对于没有标记数据库很有用,因此无法使用功能更强大的*命令。