2010-01-19 79 views
1

我發現當給定符號存在多個標籤時,Vim無法選擇正確的標籤。 我不知道它是否總是事實,但至少我多次遇到這個問題。vim的多標籤問題

爲了讓我的問題更清楚,假設有兩個類:兩個不同的cpp文件中的A類和B類。他們都定義了一個名爲AddContext的公共成員函數。然後在項目的源代碼中的其他地方,讓我們將它表示爲place x,它是A的一個實例,稱爲它的memeber函數AddContext。

您爲項目生成標籤並放置x並將光標移動到「AddContext」下,最後點擊ctr-]。令您失望的是,vim跳轉到B :: AddContext的定義而不是A: :和addContext。

那麼,有沒有什麼好的vim實踐來解決問題,因爲我momentions?

回答

2

使用

:tnext 
:tprevious 

:tn 
:tp 

這將有助於解決手工的方式你的問題。 Ctags和Vim不瞭解上下文。所以你必須自己確定它。

映射這些命令是處理該問題的好方法。

你也可以試試0scan插件。它可以幫助選擇想要的地方以更方便的方式跳躍。將光標置於符號上並按0u

1

而不是僅僅按^]使用g^]。如果光標下的標識符有多個標籤,這將顯示一個菜單,以便您可以選擇要跳轉到的標籤。如果您跳轉到標籤並且不是正確的標籤,則可以使用:tselect(您可以縮寫爲:ts)調出您所關注的最後一個標籤的菜單。