萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Vim tags 產生與使用教學:原始碼瀏覽神器 ctags 整合

Vim 搭配 ctags 產生的 tags 檔案,可實現函數/變數/巨集定義跳轉,是大型專案 (如 Linux 核心) 閱讀程式碼的利器。

步驟一:專案根目錄產生 tags

cd /path/to/kernel/source
make tags

此命令會遞迴掃描專案原始碼,在當前目錄產生 tags 檔案 (需專案 Makefile 支援 tags 目標,Linux 核心預設支援)。

步驟二:設定 Vim 讀取 tags 路徑

編輯系統層級 Vim 設定檔 /etc/vim/vimrc (或個人 ~/.vimrc),加入:

set tags=/path/to/kernel/source/tags

若專案有多層目錄,亦可設定遞迴向上查找:

set tags=./tags,./../tags,./../../tags

常用操作

指令/按鍵功能
Ctrl-]跳轉至游標下關鍵字的定義
Ctrl-t返回上一個跳轉位置 (標籤堆疊)
:tag <name>跳轉至指定標籤定義
:ts <name>列出同名標籤清單供選擇
:tags顯示標籤堆疊歷程
Ctrl-w }在新分割視窗開啟定義

進階技巧

  • 多專案切換:在 .vimrc 使用 set tags+=/path/other/tags 疊加多個 tags 檔。
  • 自動更新 tags:搭配 autocmd BufWritePost * silent! make -C /path/to/project tags >/dev/null 2>&1 存檔自動重建 (需專案支援)。
  • 搭配 cscope:cscope -Rbq 產生 cscope.out,Vim 中 :cs add cscope.out 可進行更豐富的呼叫圖、被呼叫者搜尋。

注意事項

  • make tags 需專案建置系統支援;若無 Makefile,可直接執行 ctags -R . 於專案根目錄 (需安裝 exuberant-ctags 或 universal-ctags)。
  • tags 檔案路徑建議使用**絕對路徑**,避免 Vim 工作目錄變更導致找不到。
  • 大型專案 tags 檔可能達數十 MB,Vim 載入需少許時間,屬正常現象。
copyright © 萬盛學電腦網 all rights reserved