Как перейти к следующему тегу при использовании тега в VIM

При использовании VIM с тэгбаром. Я хочу использовать следующую команду в .vimrc

nnoremap tn <C-w>h<cr>

перейти к следующему тегу в панели тегов. Но это никак не влияет.

когда я набрал tn, курсор переходит к следующему тегу, но главное окно остается неподвижным

кто-нибудь может мне помочь?

2 ответа

Решение

Обычно, <CR> в обычном режиме просто перемещает курсор в начало следующей строки. Чтобы заставить этот ключ перейти к тегу в текущей строке, плагин tagbar определяет отображение локального буфера в своем окне тега. Хотя обычно рекомендуется использовать :nnoremap, это один из случаев, когда вы должны разрешить переназначения с помощью :nmap:

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

Я больше не использую TagBar, поэтому я не могу проверить его для вас, но документ, кажется, говорит, что вы можете использовать:

: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 довольно хорошо показывает структуру моего кода, но довольно плохо помогает мне перемещаться по нему. Поскольку я использовал его главным образом для навигации, я отказался от него для интеграции ctags по умолчанию в Vim (<C-]>, :tag <Tab>, :tselect и так далее...) и CtrlP замечательно :CtrlPBufTag а также :CtrlPTag,

Другие вопросы по тегам