在VIM中使用tagbar时如何跳转下一个标记

时间:2013-01-23 12:08:35

标签: vim tagbar

使用带有标签栏的VIM时。 我想在.vimrc

中使用下一个命令
nnoremap tn <C-w>h<cr>

跳转到标签栏中的下一个标签。但它根本不起作用。

当我键入tn时,cusor跳转到下一个标签,但主窗口仍然保持

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:2)

我不再使用TagBar了,所以我不能为你测试,但你可以使用the doc seems to say

:TagbarOpen fj

跳转到TagBar窗口。我认为它比<C-w>h更加坚固,它与特定的布局非常相关。

因此,可能的映射是:

nnoremap tn :TagbarOpen fj<CR>

但是你的映射和这个映射都不允许你把光标放在你想要的下一个标签上(“跳转到标签栏中的下一个标签”)。 TagBar有一个映射<C-n>来转到下一个顶级标记,可能是也可能不是你想要的。您可以将其添加到混合中,或者使用j

nnoremap tn :TagbarOpen fj<CR><C-n>
nnoremap tn :TagbarOpen fj<CR>j

作为旁注,经过一个月的使用后,我发现TagBar非常善于展示我的代码结构,但却很难帮助我浏览它。因为我主要用它来导航,所以我放弃了Vim的默认ctags集成(<C-]>:tag <Tab>:tselect等等......)和CtrlP的精彩:CtrlPBufTag和{{ 1}}。

答案 1 :(得分:1)

通常,正常模式下的<CR>只是将光标移动到下一行的开头。要使该键跳转到当前行上的标记,标记栏插件会在其标记窗口中定义缓冲区本地映射。虽然通常建议使用:nnoremap,但这是一种必须允许使用:nmap重新映射的情况:

:nmap tn <C-w>h<cr>