Сделайте VIM перейти к ctag в существующей вкладке

1501
Adrian Petrescu

У меня есть ctags, настроенные с моей установкой vim. Моя привычка состоит в том, чтобы все соответствующие файлы, над которыми я работаю, открывались сразу во вкладках в vim. Проблема заключается в том, что если я использую Ctrl +] для перехода к ctag в редактируемом файле, он заменит буфер на этой вкладке, даже если у меня уже есть другая открытая вкладка, содержащая этот символ. Было бы намного лучше, если бы он просто переключился на эту вкладку и вместо этого переключился на символ. Таким образом, у меня всегда будет соотношение вкладок к файлам 1: 1.

Я заметил в Changenotes для плагина taglist.vim (который я также использую) есть запись, которая говорит

1. Добавлена ​​поддержка перехода к тегу / файлу в новой или существующей вкладке  из окна taglist (работает только с Vim7 и выше).  

Тем не менее, я не смог найти ничего в документации для Taglist (или Ctags) о том, как на самом деле это сделать.

Может ли какой-нибудь гуру Вим заполнить меня? Спасибо!

6

1 ответ на вопрос

2
richq

Вы можете сделать это с :tab tag NAME_OF_TAG, но это ни к чему не привязано. Вы можете переназначить <Ctrl-]>это в файл .vimrc следующим образом:

:nmap <c-]> :tab tag <c-r><c-w><cr> 

<c-r><c-w>захватит слово под курсором и <cr>будет последним вводом / возвратом каретки для запуска команды.

РЕДАКТИРОВАТЬ: о нет, я перечитал вопрос. Это будет открывать новую вкладку каждый раз, что сосет!

Согласно странице справки taglist:

В следующей таблице приведено описание ключей, которые можно использовать в окне taglist.

t Перейти к тегу в новой вкладке. Если файл уже открыт на вкладке, перейдите на эту вкладку.

И действительно, нажатие tна панели тегов делает это, но это означает, что вы уже должны были видеть тег на панели тегов. И это тоже немного отстойно ...