大多數的unix系統上都會預裝ctags,如果沒有可以使用在線安裝:sudo apt-get install ctags
生成tags文件
安裝成功后,要為源碼文件生成tags文件,才可享受ctags為閱讀代碼帶來的便利。$ ctags -R遞歸的為當前目錄及子目錄下的所有代碼文件生成tags文件為某些源碼生成tags文件,使用如下命令$ ctags filename.c filename1.c file.h或$ ctags .c .h 使用tagstag是什么?一個位置。它記錄了關于一個標識符在哪里被定義的信息,比如C或C++程序中的一個函數定義。這種tag聚集在一起被放入一個tags文件。這個文件可以讓Vim能夠從任何位置起跳達到tag所指示的位置-標識符被定義的位置。在vim打開源碼時,指定tags文件,才可正常使用,通常手動指定,在vim命令行輸入:set tags=./tags(當前路徑下的tags文件) 若要引用多個不同目錄的tags文件,可以用逗號隔開 或者設置 ~/.vimrc,加入一行,則不用手動設置tags路徑 : set tags=~/path/tags - 若要加入系統函數或全局變量的tag標簽,則需執行: ctags -I __THROW –file-scope=yes –langmap=c:+.h –languages=c,c++ –links=yes –c-kinds=+p –fields=+S -R -f ~/.vim/systags /usr/include /usr/local/include 并且在~/.vimrc中添加(亦可用上面描述的手動加入的方式): set tags+=~/.vim/systags 這樣,便可以享受系統庫函數名補全、原型預覽等功能了。 如果經常在不同工程里查閱代碼,那么可以在~/.vimrc中添加: set tags=tags; set autochdir - CTRL+] 命令會取當前光標下的Word作為tag的名字并直接跳轉。這使得在大量C程序中進行探索更容易一些。假設你正看函數”write block”,發現它調用了一個叫”write line”的函數,這個函數是干什么的呢?你可以把光標置于”write_line”上,按下CTRL+]即可。如果”write_line”函數又調用了 “write_char”.你當然又要知道這個函數又是什么功能。同時,置光標于”write_char”上按下CTRL+]?,F在你位于函數”write_char”的定義處。 “:tags”命令會列出現在你就已經到過哪些tag了: (ex command):tags 現在往回走。CTRL+T命令會跳到你前一次的tag處。在上例中它會帶你到調用了”write_char”的”write_line”函數的地方。CTRL+T可以帶一個命令記數, 以此作為往回跳的次數, 你已經向前跳過了,現在正在往回跳,我們再往前跳一次。下面的命令可以直接跳轉到當前tag序列的最后: (ex command) :tag 你也可以給它一個前輟, 讓它向前跳指定的步長. 比如”:3tag”。CTRL+T也可以帶一個前輟。這些命令可以讓你向下深入一個函數調用樹(使用CTRL+]), 也可以回溯跳轉(使用CTRL+T). 還可以隨時用”:tags”看你當前的跳轉歷史記錄。ctags中C語言的kind
c classes d macro definitions e enumerators (values inside an enumeration) f function definitions g enumeration names l local variables [off] m class, struct, and union members n namespaces p function PRototypes [off] s structure names t typedefs u union names v variable definitions x external variable declarations [off]
新聞熱點
疑難解答