使用VIM插件ctags來閱讀C代碼


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,這樣就可以了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM