当一个函数被多次重载(或者几个类里都定义了一些同名的函数),":tag"命令会跳转到第一个符合条件的。如果当前文件中就有一个匹配的,那又会优先使用它。当然还得有办法跳转到其它符合条件的tag去: (ex command) :tnext 重复使用这个命令可以发现其余的同名tag。如果实在太多,还可以用下面的命令从中直接选取一个: (ex command) :tselect tagname Vim会提供给你一个选择列表,例如:(Display)
# pri kind tag file 1 F f mch_init os_amiga.c mch_init() 2 F f mch_init os_mac.c mch_init() 3 F f mch_init os_msdos.c mch_init(void) 4 F f mch_init os_riscos.c mch_init() Enter nr of choice (<CR> to abort):
现在你只需键入相应的数字(位于第一栏的)。 其它栏中的信息是为了帮你作出决策的。在多个匹配的tag之间移动,可以使用下面这些命令: (ex command):tfirst go to first match :[count]tprevious go to [count] previous match :[count]tnext go to [count] next match :tlast go to last match 如果没有指定[count],默认是1。
6、tag的名字
命令补齐真是避免键入一个长tag名的好办法。只要输入开头的几个字符然后按下制表符: (ex command) :tag write_<Tab> Vim 会为你补全第一个符合的tag名。如果还不合你意,接着按制表符直到找到你要的。有时候你只记得一个tag名的片段,或者有几个tag开头相同。这里你可以用一个模式匹配来告诉Vim你要找的tag。