2009-12-01 21 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

相關問題