ctags使用簡介

2021-05-01 10:32:09 字數 3367 閱讀 5526

[linux下軟體開發者必備利器] ctags使用簡介

vi 大家都很熟悉,某些情況下它是我們在linux下唯一可用的文字編輯器。其實我們平時所指的vi其實是 vim(viimproved,vi增強版)。有人常常拿vim和emacs比較,vim儘管不象emacs那樣有那麼多的功能,但是比emacs更方便、好用。vim簡單易用,只要看看vim自帶的vitutor,大約只要20分鐘就能掌握vim的用法。對於linux下的c/c++的程式設計師,使用 vim+ctags的組合來寫程式也許是最佳的選擇。^_^

vi的使用方法這裡就不羅嗦了,本文假設大家已花了20分鐘學習過了vitutor。 ^_^

本節我們主要講一下ctags這個程式。儘管ctags也可以支援其它編輯器,但是它正式支援的只有vim。並且vim中已經預設安裝了ctags,它可以幫助程式設計師很容易地瀏覽源**。

熟練的使用ctags僅需記住下面七條命令:(很簡單吧,呵呵)

1. $ ctags –r *    ($ 為linux系統shell提示符)

2.   $ vi –t tag       (請把tag替換為您欲查詢的變數或函式名)

3. :ts                                (ts 助記字:tags list, 「:」開頭的命令為vi中命令列模式命令)

4. :tp                                (tp 助記字:tags preview)---此命令不常用,可以不用記

5. :tn                                (tn 助記字:tags next) ---此命令不常用,可以不用記

6. ctrl + ]

7. ctrl + t

下面我們逐條的解釋上面的命令:

「$ ctags –r *」:「-r」表示遞迴建立,也就包括源**根目錄(當前目錄)下的所有子目錄。「*」表示所有檔案。這條命令會在當前目錄下產生乙個「tags」檔案,當使用者在當前目錄中執行vi時,會自動載入此tags檔案。tags檔案中包括這些物件的列表:

用#define定義的巨集

列舉型變數的值

函式的定義、原型和宣告

名字空間(namespace)

型別定義(typedefs)

變數(包括定義和宣告)

類(class)、結構(struct)、列舉型別(enum)和聯合(union)

類、結構和聯合中成員變數或函式

vim用這個「tags」檔案來定位上面這些做了標記的物件。

剩下的命令就是定位這些物件的方法:

「$ vi –t tag」 :在執行vim的時候加上「-t」引數,例如:

[/usr/src]$ vim -t main

這個命令將開啟定義「main」(變數或函式或其它)的檔案,並把游標定位到這一行。如果這個變數或函式有多處定義,在vi命令列模式「:ts」命令就能列出乙個列表供使用者選擇。 「:tp」為上乙個tag標記檔案,「:tn」為下乙個tag標記檔案。當然,若當前tags檔案中使用者所查詢的變數或函式名只有乙個,「:tp,:tn」命令不可用。 :(

最方便的方法是把游標移到變數名或函式名上,然後按下「ctrl+]」,這樣就能直接跳到這個變數或函式定義的原始檔中,並把游標定位到這一行。用 「ctrl+t」可以退回原來的地方。即使使用者使用了n次「ctrl+]」查詢了n個變數,按n次「ctrl+t」也能回到最初開啟的檔案,它會按原路返回 。 ^_^

注意:執行vim的時候,必須在「tags」檔案所在的目錄下執行。否則,執行vim的時候還要用「:settags=」命令設定「tags」檔案的路徑,這樣vim才能找到「tags」檔案。在完成編碼時,可以手工刪掉tags檔案(帚把不到,灰塵不會自己跑掉^_^)。

補充:ctags的使用

1 $ ctags -r

「-r」表示遞迴建立,也就包括源**根目錄下的所有子目錄下的源程式。「tags」檔案中包括這些物件的列表:

2 用#define定義的巨集

列舉型變數的值

函式的定義、原型和宣告

名字空間(namespace)

型別定義(typedefs)

變數(包括定義和宣告)

類(class)、結構(struct)、列舉型別(enum)和聯合(union)

類、結構和聯合中成員變數或函式

3 $ vim -t foo_bar

這個命令將開啟定義「foo_bar」(變數或函式或其它)的檔案,並把游標定位到這一行。

4 在vim編輯器內用「:xx」命令,例如:

:cstag main 列出所有main所在位置

:ta foo_bar 跳轉到foo_bar函式位置

5 把游標移到變數名或函式名上,然後按下「ctrl-]」。用「ctrl-o」退回原來的地方。

還有乙個工具能自動將**整理成gnu的風格

indent filename

vim在vim編輯器的環境下用「:make」就可以編譯程式,當然其前提是在當前目錄下有makefile檔案。執行完「: make」之後,如果程式中有錯誤,就會顯示出來。

這時候,游標會自動指向第乙個出現錯誤的地方,而且你還可以看到錯誤的提示。然後,你就可以改正錯誤,而不用手工找到出錯的那一行。記住下面幾個有用的命令:

「:cl」列出錯誤

「:cn」讓游標指向下乙個錯誤

「:cp」讓游標指向上乙個錯誤

「:cnew」從頭開始

你甚至可以讓vim識別出其它編譯器而不是gcc的錯誤提示。這對一些開發嵌入式系統的程式設計師這很有用,因為他們很可能用的不是gcc而是其它編譯器。

通過設定「errorformat」的值,可以讓vim識別出編譯器的出錯提示。因為不同的編譯器的出錯提示是不同的,所以如果用的不是gcc就要重新設定。

「errorformat」的值是乙個字串,它的格式和c語言的scanf的字串格式相識。

gcc的「errorformat」的值為:%f:%l:%m。其中「%f」表示檔名,「%l」表示行號,「%m」表示出錯資訊。

用「:h errorformat」檢視詳細的幫助資訊。

用「:h quickfix」、「:h make」、「:h makeprg」、「:h errorfile」檢視其它的資訊。

有用的快捷鍵

下面的這些快捷鍵對程式設計師很有幫助:

在函式中移動游標

[[ 轉到上乙個位於第一列的「 轉到下乙個空行

gd 轉到當前游標所指的區域性變數的定義

* 轉到當前游標所指的單詞下一次出現的地方

# 轉到當前游標所指的單詞上一次出現的地方

括號的匹配

% 用來進行小括號、中括號和大括號的匹配。這要看當前游標指向的是什麼符號了。

其它vim的配置檔案是「.vimrc」,用這個檔案可以配置vim。vim的圖形介面的版本叫gvim。vim也有用於windows平台的版本。

出處:http://bbs.linuxpk.com/thread-3481-1-1.html

安裝使用Ctags

centos 6.4 系統 ctags 的作用 ctags工具是用來遍歷源 檔案生成tags檔案,這些tags檔案能被編輯器或其它工具用來快速查詢定位源 中的符號 tag symbol 如變數名,函式名等。快速定位函式與變數 命令 sudo yum install ctags 安裝ctags 2.在...

ctags簡單使用

1 安裝 sudo apt install ctags 2 生成標籤檔案 進入專案所在目錄,執行指令 ctags r r 表示遞迴,為當前目錄及其子目錄中的c c 檔案生成標籤索引檔案 3 快捷鍵跳轉 ctrl 跳轉到游標所在標籤的 定義處 ctrl t 跳回上乙個標籤處 ctrl shift o ...

ctags使用小記

ctags是vim的乙個外掛程式,它能夠為原始碼的變數 物件 結構體 類 函式 介面 巨集等產生索引檔案,以便快速定位。ctags的安裝簡單 sudo apt get install ctags安裝後即可為原始碼檔案生成tags檔案 ctags r mydir其中mydir為 存放目錄,ctags能...