vim + ctags/cscope 大型工程代碼閱讀

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.       在當前目錄輸入vivi –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

發佈了45 篇原創文章 · 獲贊 1 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章