2009-12-01 56 views
0

现在我有两个目录,所有的头文件* .h都包含在目录/ inc中,而所有的c文件* .c都存储在/ src目录。当在两个不同的目录中为.h和.c文件生成标签时ctags问题

的目录就这样,(/项目是一个向上一级目录):

/project-- |----/inc 
      |----/src 

我想用CTRL +]找到像例子中,源文件中的一个参数或一个函数的定义。C。如何生成这些标签?

我的方法是:

(1) cd to the /project directory 

(2) ctags inc/*.h src/*.c 

然后一个标签文件生成有,但是,当我打开一个示例文件,并使用“CTRL +]”,它不能使我的定义。为什么???

我需要在/ src下生成标签文件吗?

任何帮助?非常感谢!

+0

实际上,当我在/ src目录下使用ctags -R时,它可能会导致我在源文件中进行一些定义,但是,我不确定它是否会导致我在位于/ inc目录....... – MaiTiano 2009-12-01 14:14:08

回答

2

在VIM中键入:

  1. :pwd
  2. :set tags

验证路径到您的TAGFILE中存在的2个输出,相对路径,该路径的输出1.

注意:您可以将tags变量设置为您当地的.vimrc的一部分。

更新:通常将tags设置为tags,../tags,../../tags这样的模式。使用这种模式,vim将使用它找到您的文件夹结构的第一个标签文件(再次相对于您的pwd)。

+0

之后:设置标签给它类似这样的“tags =。/ tags,。/ TAGS,tags,TAGS”...是不是正确? – MaiTiano 2009-12-01 14:15:03

+0

@MiaTiano:'tags'这个值告诉vim在打开文件的相同目录中搜索标签文件。我敢打赌,如果您在搜索路径中添加了“../ tags”(正如我上面的UPDATE中所述),它会对您有用。底线是vim开始从'pwd'寻找标签。它搜索的文件名称列在':set tags'中。 – 2009-12-01 14:25:33

+0

非常感谢。 :) – MaiTiano 2009-12-01 14:37:16

2

转至/ project,并使用命令“ctags -R”。在.vimrc中,输入命令“set tags =/project/tags”。退出vim并再次输入。标签现在应该有效。

+0

如果我将/ project/tags添加到.vimrc中,那么以后的一切都会受这句话的影响吧?此外,/ project/tags是路径的一部分,是否需要添加set tags的全路径=〜/ abcd/project/tags? – MaiTiano 2009-12-01 14:11:45

+0

是的,将它放入.vimrc会影响所有内容,直到您将其删除。我有一堆标签文件,在我的.vimrc中用逗号分隔。是的,你需要完整的路径。你提到的问题/项目,所以我认为这是完整的路径。 – 2009-12-01 14:17:57

+0

感谢您的详细和亲切的答案。我从你身上学到了很多东西。 :) – MaiTiano 2009-12-01 14:33:24

相关问题