我正在尝试让gf使用如下所示的路径:

foo/bar.js

该文件位于此处:/Users/dimal/dev/project/src/foo/bar.js
因此,我将path设置如下:
set path+=/Users/dimal/dev/project/src

似乎gf应该找到文件,但找不到。
E447: Can't find file "foo/bar.js" in path

为什么?

我尝试了其他变体:
/Users/dimal/dev/project/src/**
/Users/dimal/dev/project/src/**/*

最佳答案

gf命令通过:set path在包括的路径中搜索文件。
set path命令接受类似于*的通配符。 (*表示任何字符)因此,如果您想将所有文件包括在目录的子目录下,则可以

      :set path+=directory/**

对于一个目录下的三个层次的深度,即要在当前目录的子目录的子目录的任何子目录下包含文件,您可以像directory/**3这样指定

允许的最大深度为100。

像这样的命令
       :set path+=/Users/dimal/dev/project/src/**3

还将允许您在src/subdirectory/subdirectory/subdirectory中搜索名为bar.js的文件,而不仅仅是在src/中。

关于Vim:无法正确设置 'path'来使 'gf'工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37472796/

10-12 20:20