我試圖用CTAGS用vim,我發現了以下問題:的Vim:T下一頁不將光標移動到下一個標籤
首先,讓我們來看看下面的圖片: 如果我按C-]然後光標將在第7行上移動,如下所示:
但是,如果我鍵入命令:tn光標仍然在第7行而不是第14行,下一個標記是。爲什麼會發生這種情況,我該如何解決這個問題?如果你看下面的圖片在左下角顯示:「tag 2 of 3」,這意味着:tn的作品,我認爲,但光標不移動。
我試圖用CTAGS用vim,我發現了以下問題:的Vim:T下一頁不將光標移動到下一個標籤
首先,讓我們來看看下面的圖片: 如果我按C-]然後光標將在第7行上移動,如下所示:
但是,如果我鍵入命令:tn光標仍然在第7行而不是第14行,下一個標記是。爲什麼會發生這種情況,我該如何解決這個問題?如果你看下面的圖片在左下角顯示:「tag 2 of 3」,這意味着:tn的作品,我認爲,但光標不移動。
如果你看看你的tags
文件,你可以看到你的fc()
三個定義是相同的:
fc pam.cpp /^ void fc() {$/;" f class:A
fc pam.cpp /^ void fc() {$/;" f class:B
fc pam.cpp /^ void fc() {$/;" f class:C
默認情況下,C標籤不提供行:列信息Vim的,它只是提供了一個搜索模式。由於所有三個標籤都是相同的搜索模式,因此Vim始終執行相同的搜索,並始終在同一個地方結束。如果您使用:tag fc
,<C-]>
,:tnext
,:tselect
或他們的任何朋友,則無關緊要。
隨着-n
選項,C標籤輸出行號,而不是搜索模式:
fc pam.cpp 14;" f class:B
fc pam.cpp 21;" f class:C
fc pam.cpp 7;" f class:A
這是更好,因爲現在,Vim可以跳轉到正確的路線,但標籤上正確排序。解決這個問題的一種方法是使用-u
選項:
A pam.cpp 5;" c file:
fc pam.cpp 7;" f class:A
B pam.cpp 12;" c file:
fc pam.cpp 14;" f class:B
C pam.cpp 19;" c file:
fc pam.cpp 21;" f class:C
總之,你應該生成你tags
與-n
和-u
選項。例如:
$ ctags -Rnu .
請參閱$ man ctags
。
再次閱讀':help:tnext'。 – romainl
@romainl,它表示:跳轉到[count]下一個匹配標籤,默認情況下[count]爲1。我讀了標籤 - !部分,我看到如果標籤在當前文件中,將執行以下操作:goto標籤。這正是我所期待的,但不幸的是它不起作用。我錯過了什麼? – IonutC
您可以通過':tselect'顯示列表來理解'3的標籤2'。 –