vim 的 tags 模組 與 ctags

2021-08-17 18:54:50 字數 659 閱讀 8871

一般來說,在**中跳轉,離不開 ctags。

實際上,vim 中**跳轉是由 vim tags 模組完成的,tags 模組依賴於 tags 檔案。

ctags(generate tag files for source code) 是產生 tags 檔案的。

tags 檔案只包含了函式、類、變數的定義的資訊,而沒有包含使用資訊。

如果要知道乙個函式都在什麼地方使用過,需要使用 cscope。

ctags 預設是不會自動生成 ctags 檔案的,常用的 3 個生成命令如下:

$ ctags *$ ctags -r

$ ctags -r --c++-kinds=+p --fields=+ias --extra=+q .

詳細的說明,見 vim 的 tags 幫助文件。

:help tags

命令、快捷鍵、功能描述如下:

對於存在多個匹配的 tag(如, 在 .h 和  .cpp 中都宣告或者定義的方法名):

set tags=tags;  "

; 注意分號,不可省略,表示若當前目錄中不存在tags, 則在父目錄中尋找。

map :!ctags -r --c++-kinds=+p --fields=+ias --extra=+q .

Vi與Vim的區別

vi與vim的區別 一直用著vi,有朋友勸我用vim,那麼它們有什麼區別呢?簡單點來說,它們都是多模式編輯器,不同的是vim 是vi的公升級版本,它不僅相容vi的所有指令,而且還有一些新的特性在裡面。vim的這些優勢主要體現在以下幾個方面 1 多級撤消 我們知道在vi裡,按 u只能撤消上次命令,而在...

vim的查詢與替換

替換 s fred joe igc 普通替換命令 s r g 刪除 dos 的換行符 m 你的文字檔案是否亂七八糟的排成一行?使用如下命令 s r r g 轉換 dos 回車符 m 為真正的回車符 s 刪除行尾空白 s 同上 s s r 刪除尾部空白和dos換行符 s s r 同上 刪除空行 s n...

Vi與Vim的區別

一直用著vi,有朋友勸我用vim,那麼它們有什麼區別呢?簡單點來說,它們都是多模式編輯器,不同的是vim 是vi的公升級版本,它不僅相容vi的所有指令,而且還有一些新的特性在裡面。vim的這些優勢主要體現在以下幾個方面 1 多級撤消 我們知道在vi裡,按 u只能撤消上次命令,而在vim裡可以無限制的...