Gf命令的Vim问题

gea*_*sin 17 vim

我正在使用Vim并且已将path(set path+= c:/work/etc/etc)设置为我的项目目录(对于C#),但仍然使用命令'gf'给我错误:

E:447无法找到文件.

我在这里做错了什么吗?

Rob*_*lls 15

天儿真好,

要获得有关当前路径设置的更多详细信息,您可以通过输入命令查看包含的内容以及vim无法找到的文件:

:checkpath
Run Code Online (Sandbox Code Playgroud)

并且您将获得未找到的文件的转储,例如

--- Included files not found in path --- 
<io.h> 
vim.h --> 
  <functions.h> 
  <clib/exec_protos.h>
Run Code Online (Sandbox Code Playgroud)

或者您可以通过输入获得所有包含的文件列表,包括找到和未找到的文件

:checkpath!
Run Code Online (Sandbox Code Playgroud)

输入

:help path
Run Code Online (Sandbox Code Playgroud)

获取有关路径语法的更多信息.

编辑:不要忘记使用语法

set path=/work
Run Code Online (Sandbox Code Playgroud)

将您的路径变量完全重置为您刚刚声明的内容.我建议使用

set path+=/work
Run Code Online (Sandbox Code Playgroud)

代替.这不会破坏当前路径,而只会添加/ work目录.

HTH


Yur*_*iak 6

我也发现了这一点

:set path+=./foo/bar
Run Code Online (Sandbox Code Playgroud)

添加相对于当前文件目录的搜索位置,就像'.' 确实.

我的vim不想搜索这样的包含

#include <common/util/string.h>
Run Code Online (Sandbox Code Playgroud)

所以我需要做的是

:set path+=foo/bar
Run Code Online (Sandbox Code Playgroud)

代替

:set path+=./foo/bar
Run Code Online (Sandbox Code Playgroud)

前者添加了相对于当前工作目录的搜索路径.希望它可以帮助某人.


Lar*_*ann 3

首先你可以使用:find file.name打开文件吗?(:帮助查找更多信息)。如果这不起作用,那么你的路径是错误的。如果:find确实找到了您的文件,则执行以下操作:

  1. 确保您不处于可视/插入模式
  2. 将光标置于文件名的第一个字母上,然后按gf