2013-10-12 54 views
1

對於我的每個C++項目,我都在源代碼樹的根目錄中保留一個標記文件。當我改變它時,如何讓Vim自動加載該目錄的標籤文件?如何在更改目錄時自動從目錄加載標籤文件?

例如我的目錄佈局看起來像這樣:

~/dev/project1/tags 
~/dev/project2/tags 

我啓動Vim(從GUI)並且當前工作目錄默認爲$ HOME。我輸入:cd ~/dev/project/,Vim應該加載~/dev/project/tags。明天,我可能想要在project2上工作,所以我希望Vim爲我加載該項目的標籤時,我會給它cd

這怎麼辦?

回答

6

只是將下面的行添加到您的~/.vimrc

set tags=./tags;,tags; 

它的意思是「尋找一個tags文件在當前文件的目錄,然後向上直到/,並在工作目錄,然後向上直到/ 」。

換句話說,無論您在哪個項目中,Vim都會爲該項目選擇合適的tags

:help tags是一個很好的閱讀,它會節省您在這裏發佈問題的麻煩。

注意:該行的神奇部分是「向上搜索」的;。你可以給Vim一個這樣的上限:;$HOME

+0

謝謝。 Vim是一個偉大的工具,但我發現內置的幫助完全無法解讀。即使現在知道要尋找什麼,我也找不到它。 –

+0

假設我設置了'tags = tags;/usr',工作目錄是'/ etc/xxx',Vim會向上搜索直到'/'? – TheoYou

+0

向上搜索不會在我的機器上停止。無論當前目錄是什麼,以及在分號後放置什麼,Vim都會搜索到'/'。 – TheoYou

1

嘗試一下easytag,有一個選項'g:easytags_dynamic_files'可以處理它。