Как перейти к следующему тегу при использовании тега в 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
,