良好的一天,多個地方採購標籤,VIM - 從項目
我通常工作在相對較小(不到2萬行代碼),它們包含在單個目錄中的所有自我,有自己的Makefile項目,很容易處理。
VIM是我喜歡的編輯器,當我打開一個項目,我通常通過映射建立的ctags列表中F10鍵:
map <F10> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR>
這讓我跳到的定義通過將光標移動到文本上,然後敲擊CTRL + ]以及通過OmniCppComplete使用代碼完成和下拉列表來實現變量/結構/等。
但是,我現在正在研究一個稍大的項目,該項目使用了大量的結構。而且,這些結構中的很多都有其他自定義結構的數組作爲成員,所以現在代碼完成對我來說是非常有用和重要的工具。
我有兩個路徑,其中包括大量的.C
文件和.h
文件,並且它們可能因機器而異。在每一臺機器,但是,我們有我們的.bashrc
文件中的環境變量指向他們,像這樣:
SDK_SRC_PLUS_HEADERS=/public/sdk
THIRD_PARTY_SDK=/private/sdk
我希望能夠有VIM自動引用的這些附加路徑的內容時,我嘗試(通過VIM內置的OmniCppComplete功能),或者跳轉到這些位置的文件,當我在VIM中使用CTRL + ]跳轉到結構,函數,變量等的定義
因此,對於上述兩個路徑,我將它們放入其中,並生成第電子標籤通過ctags -R
。然後,我修改了~/.vimrc
文件,包括附加標籤的路徑,像這樣:
tags=./tags
tags+=$SDK_SRC_PLUS_HEADERS/tags
tags+=$THIRD_PARTY_SDK/tags
然後cd
到我在/home/user1/projects/test
項目,我,開始VIM,和VIM打F10索引它。但是,這根本不起作用。事實上,它打破了我僅僅爲項目本身使用標籤的能力(即:CTRL + ]現在什麼都不做)。
有沒有人有任何建議,我可以如何通過環境變量使用多個源代碼目錄來完成代碼完成源代碼和跳轉到定義?
非常感謝大家的時間和幫助!
嗯這一直爲我工作。您是否使用':verbose set tags?'檢查了標籤的值? – sehe
@sehe肯定。我通過上面的命令檢查了輸出,結果是:'tags =。/ tags,$ SDK_SRC_PLUS_HEADERS/tags,$ SDK_SRC_PLUS_HEADERS/tags'。我想知道它是否可以像BASH環境變量的語法一樣簡單(即:也許我需要使用某種VIM函數來取消引用環境變量並將它們減少到絕對路徑?)。 – DevNull
是的,如果它沒有擴展,我只打賭〜支持 – sehe