的Vim:T下一页不将光标移动到下一个标签
问题描述:
我试图用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'。 –