我正在使用Ctrl - ]在Vim中使用Ctags进行导航。 如果有多个匹配,我该如何导航到备用文件?如何在Vim中导航多个ctags匹配项?
Ex。 something.publish
在含有publish
多次出现一个代码库:
class Foo
def publish
end
end
class Bar
def publish
end
end
我正在使用Ctrl - ]在Vim中使用Ctags进行导航。 如果有多个匹配,我该如何导航到备用文件?如何在Vim中导航多个ctags匹配项?
Ex。 something.publish
在含有publish
多次出现一个代码库:
class Foo
def publish
end
end
class Bar
def publish
end
end
:tn[ext]
进入到下一个标签,:tp[revious]
转到以前的一个。 :ts[elect]
为您提供了一个可供选择的列表。
:help tag-matchlist
更多有趣和令人兴奋的事情尝试!
使用g]
而不是C-]
获取所有匹配的列表。
您可能需要阅读:help g]
添加我最终寻找的情况下,它可以帮助别人的答案:
g<C-]>
将跳转到该标签如果只有一场比赛,然后会出现一个列表如果有多个匹配。
我已经添加了这个映射到我的.vimrc让它做我想做的默认:
nnoremap <C-]> g<C-]>
ltag
ltag the_tag_name
lopen
打开一个窗口的位置与标签火柴。
这与正则表达式标签搜索特别强大:
ltag /tag_na
lopen
这将列出包含字符串tag_na
(因此包括the_tag_name
)的所有标签。
然后,您可以进一步搜索位置列表中的内容,然后按Enter键跳转到标记。
要将光标下使用它的话,你可能要定义的地图:
nnoremap <leader>l exec("ltag ".expand("<cword>"))<CR>
然后,如果你是一个标签疯子跟我一样:
command! -nargs=1 Ltag silent ltag <args> | execute "normal \<C-o>" | tab lopen
将开启带有位置列表和所有匹配的新标签,而不是直接跳转到标签页:
:Ltag /my_struct