一般來說,在**中跳轉,離不開 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裡可以無限制的...