1、說明
Ctags 是 vim 下方便代碼閱讀的工具。盡管 ctags 也可以支持其它編輯器,但是它正式支持的只有 vim。並且 vim 中已經默認安裝 ctags,它可以幫助程序員很容易地瀏覽源代碼;ctags 最先是用來生成 C 代碼的 tags 文件,后來擴展成可以生成各類語言的 tags,但是我主要還是用來閱讀 C 源代碼。
ctags更新地址:http://ctags.sourceforge.net/ 這個網站是 ctags 的官方網站,可以下載到關於 ctags 的最新內容。
2、ctags能定位什么內容
1) 用#define定義的宏
2) 枚舉類型變量的值
3) 函數的定義、原型和聲明
4) 名字空間(namespace)
5) 類型定義(typedef)
6) 變量(包括定義和聲明)
7) 類、結構體、枚舉類型、聯合
8) 類、結構體和聯合中成員變量或函數
3、安裝ctags
如果是redhat或centos系統可以直接使用yum在線安裝
[root@localhost ~]# yum install ctags
源碼位置生成tags文件
[root@localhost ~]# ctags -R *
4、查找操作(3種使用方式)
1)直接在命令行上操作
[root@localhost ~]# vim -t main [root@localhost ~]# vim -t pos_create_task
結果:直接打開對應符號對應文件,並定位到該符號的定義位置。常用在知道符號,但不知道在哪個文件模塊中的位置。
2)在vim的模式下使用": ta"命令
:ta main :ta pos_create_task
3)在光標指定位置下直接使用"ctrl + ]"
在光標指定的位置下直接使用 "crtl + ]" 就可以定位到函數的定義位置;使用 "ctrl + t" 快捷鍵返回到上次跳轉之前的位置。
關於ctags的用法很多,以下是我們列舉的部分:
-->"ctrl + t"退回到原來的地方
-->"[{"轉到上一個位於第一列的"{"
-->"}]"轉到下一個位於第一列的"{" /* 似乎不管用 */
-->"{"轉到上一個空行
-->"}"轉到下一個空行
-->"gd"轉到當前光標所指的局部變量的定義
-->"*"轉到當前光標所指的單詞一次出現的地方
-->"#"轉到當前光標所指的單詞上一次出現的地方
5、注意事項
使用 vim 打開相關使用 tags 標記的源文件時,當前目錄要在 tags 所在目錄下執行 vim 命令。如果在其子目錄下邊執行 vim 打開相應文件,默認是使用不了 ctags 的跳轉功能的。解決的方式是,在 vim 的配置文件中 /etc/vimrc 或者 ~/.vimrc 中設置:set tags=/var/dz_resource/ineedle/soft/tags,這樣就可以了。