Gf命令的Vim问题

时间:2009-12-19 10:51:37

标签: vim

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

  

E:447无法找到文件。

我在这里做错了吗?

6 个答案:

答案 0 :(得分:15)

天儿真好,

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

:checkpath

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

--- Included files not found in path --- 
<io.h> 
vim.h --> 
  <functions.h> 
  <clib/exec_protos.h>

或者您可以输入

获取所有包含文件的列表,包括找到和未找到的文件
:checkpath!

输入

:help path

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

编辑:不要忘记使用语法

set path=/work

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

set path+=/work

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

HTH

答案 1 :(得分:6)

我也发现了

:set path+=./foo/bar

添加相对于当前文件目录的搜索位置,就像“。”一样。确实

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

#include <common/util/string.h>

所以我需要做的是

:set path+=foo/bar

而不是

:set path+=./foo/bar

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

答案 2 :(得分:3)

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

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

答案 3 :(得分:0)

如果按gf,请确保文件名没有前导字符,即当光标位于help时,使用gf将无效。

file=help.txt

答案 4 :(得分:0)

我知道这是一个古老的问题,但是由于另一个原因,我对此也遇到了一些麻烦,花了一些时间才找出原因。我希望这会对某人有所帮助。

当目录与wildignore匹配时,gf不适用于其中的文件,:find也不适用。

如果您阅读wildignore的文档,这是显而易见的,但是我忘记了我曾经更改过该变量及其确切含义。我还使用了一个glob,但对我来说,立即发现使用gf的目录也与此glob匹配。

答案 5 :(得分:-1)

如果您正在谈论tomnomnom的 gf工具wri††en ,那么以下是设置方法:

为GO设置PATH (如果尚未设置)。

export GOROOT=$HOME/go
export PATH=$PATH:$GOROOT/bin

步骤1:github

下载工具

第2步:cp -r path/to/tomnomnom/gf/examples ~/.gf

第3步:source ~/tools/gf/gf-completion.bash

现在gf应该可以在任何地方与自动完成一起使用。 资料来源:他的repo.

上有原始资料。