vi+ctags筆記:
1. 生成tags索引文件.
$ cd $CODE_DIR && ctags -R * ### "-R" 表示遞歸當前目錄
$ ctags -R --languages=+C,+C++,+Asm,+Make,+HTML --links=no --verbose ### 過濾非源碼文件
2. 當前目錄輸入vi, 即可進行一系列操作.
:tag sym ### 跳到symbol函數或變量處
### symbol支持tab補全, /^abc, 表示以abc開始
:ts ### tags list
:tp ### tags preview
:tn ### tags next
:tags ### list all 標記
Ctrl+] ### 進入函數或變量的定義處
Ctrl+T ### 轉到上一個標籤
Ctrl+O ### 返回原處 [和Ctrl+T差別具體是?]
gd ### 轉到光標所指的局部變量的定義處
* ### 轉到光標所指的單詞下一個出現處
# ### 轉到光標所指的單詞下一個出現處
% ### #ifdef ... #else ... 之間跳轉
Note: 無查看函數/參數/在工程中全局引用情況的功能,需要藉助cscope的`cs f e $NAME`.
src: http://blog.163.com/lijiji_1515/blog/static/1268774462009105115259621/?fromdm&fromSearch&isFromSearchEngine=yes
Source Insight在大型的工程上使用力不從心,而往往在使用Source Insight建立小的項目時,要查一些API和宏的定義。鑑於此,可以使用vim+cscope的方法,來彌補不足。
一般vim是自帶了cscope的,如果沒有安裝,手動添加此文件到.vim目錄下
參考源:http://cscope.sourceforge.net/cscope_vim_tutorial.html
具體配置和使用爲:
1. 到工程的根目錄,建立工程。
#cscope –R -b
2. 在當前目錄輸入vi或vi –t init_view_function,開始工程代碼瀏覽。
常用命令:
cs add cscope.out
cs f sfunction
cs f gfunction
cs f e struct inode { ###閱讀內核代碼時, 比使用cs f g 精度更高
file ###得到當前瀏覽文件名和路徑
Ctrl +t 返回上一個瀏覽目標。
Ctrl + d 退出Cscope.
helpcscope得到幫助。
安裝:
cscope: $ sudo apt-get install cscope
ctags: $ sudo apt-get install exuberant-ctags