проблема с несколькими тегами для vim - PullRequest
1 голос
/ 19 января 2010

Я обнаружил, что когда для данного символа существует несколько тегов, Vim не может выбрать правильный тег. Я не знаю, всегда ли это правда, но, по крайней мере, я встречался с этой проблемой несколько раз.

Чтобы прояснить мою проблему, скажем, есть два класса: класс A и класс B в двух разных файлах cpp. Они оба определили публичную функцию-член под названием AddContext. Затем где-нибудь еще в исходном коде проекта, давайте обозначим его как место x, экземпляр A вызвал свою функцию memeber AddContext.

Вы генерируете теги для проекта, переходите на место x, перемещаете курсор в «AddContext» и, наконец, нажимаете ctr-]. К вашему смятению, vim перейдет к определению B :: AddContext, а не A :: AddContext.

Так есть ли какая-нибудь хорошая практика vim для решения проблемы, как я описал?

Ответы [ 2 ]

2 голосов
/ 19 января 2010

Используйте

:tnext
:tprevious

или

:tn
:tp

Это поможет решить вашу проблему вручную.Ctags и Vim не понимают контекст.Поэтому вы должны определить это сами.

Отображение этих команд - хороший способ справиться с проблемой.

Вы также можете попробовать 0scan плагин.Это может помочь выбрать более удобное место для прыжка.Наведите курсор на символ и нажмите 0u.

1 голос
/ 22 января 2010

Вместо простого нажатия ^] используйте g^].Это отобразит меню, если под курсором есть несколько тегов для идентификатора, так что вы можете выбрать тег, к которому хотите перейти.Если вы переходите к тегу, а он неправильный, вы можете использовать :tselect (вы можете сократить :ts), чтобы вызвать меню для последнего тега, за которым вы следовали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...