ctags生成tags文件
安裝ctags之后,在項目目錄下執行
$ctags --fields=+iaS --extra=+q -R
如果要添加系統函數,執行下面的命令,可以根據自己的需要添加具體路徑,注意最后需要*號
$ctags -I __THROW -I __attribute_pure__ -I __nonnull -I __attribute__ --file-scope=yes --langmap=c:+.h --languages=c,c++ --links=yes --c-kinds=+p --c++-kinds=+p --fields=+iaS --extra=+q -f ~/.vim/systags /usr/include/* /usr/include/c++/4.8/bits/* /usr/include/netinet/* /usr/include/arpa/* /usr/include/mysql/*
然后在.vimrc中添加
set tags=~/.vim/systags
set tags=~/(your work path)/ctags
tags有一個小技巧,在vimrc文件中設置:
set tags=tags;
(注意有分號),在vi中使用定位快捷鍵時會先在當前目錄中查找tags文件,找不到的話,就會到父目錄中找。
參數說明:
- –fields指定tags的可用擴展域(extension fields),以包含到tags入口。
- i:繼承信息Inheritance information
- a:類成員的訪問控制信息 Access (or export) of class members
- S: 常規簽名信息,如原型或參數表 Signature of routine(e.g. prototype or parameter list)
- –extra=[+|-]flags
指定是否包含某種擴展信息到tags入口。 - q:包含類成員信息(如c++,java,Eiffel)。
- I: 忽略屬性
- languages 只掃描指定語言的文件
- languagemap 以何種語言的語法掃描某類文件