ctags的配置與使用, ctags無法跳轉(zhuǎn)變量

在vim中使用CTRL+] 可以查找到變量,函數(shù)等的定義,使用它CTRL+t可以返回到上一個(gè)光標(biāo)

ctags工具是用來生成查找定義時(shí)所需的符號(hào)文件的,可以使用如下的指令為當(dāng)前文件夾下的所有文件生成符號(hào)

ctags -R * 

vim中的tags變量指明符號(hào)文件位置,在vim中使用如下語句可以重新設(shè)置tag
文件的位置

:set tags=xxx/tags

無法跳轉(zhuǎn)變量

ctags生成符號(hào)的時(shí)候可以進(jìn)行符號(hào)類型控制,可以選擇是否生成函數(shù)、變量、枚舉的符號(hào),以下指令可以查看到各語言的選型

ctags --list-kinds

如果只使用 ctags -R * 生成符號(hào)文件,是采用默認(rèn)的策略選項(xiàng),當(dāng)發(fā)現(xiàn)不包含相應(yīng)類型的符號(hào),可使用以下方式重新生成tags文件,如下一個(gè)test.cpp文件需要重新生成符號(hào),使用+l表示添加local vairable的符號(hào),前面的減號(hào)代表去除這類型的符號(hào),這些在man ctags 中對(duì)應(yīng)

ctags --c++-kinds=+l test.cpp

結(jié)構(gòu)和類成員

對(duì)于c/c++ 對(duì)象內(nèi)的成員,需要使用--fields=+iaS,--extra=+q 添加額外的選項(xiàng),詳情使用man ctag 查看

i:繼承信息Inheritance information
a:類成員的訪問控制信息 Access (or export) of class members
S: 常規(guī)簽名信息,如原型或參數(shù)表 Signature of routine(e.g. prototype or parameter list)
–extra=[+|-]flags
指定是否包含某種擴(kuò)展信息到tags入口。
q:包含類成員信息(如c++,java,Eiffel)。

參考博客

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容