Я считаю, что Vim по умолчанию переходит к первому тегу в файле тегов. Вы можете выбрать другой, если хотите: используйте :tj
(аналогично: tselect, но автоматический переход, если есть только одно совпадение) или Ctrl-]
, за которым следует :tn
).
Единственный способ изменить значение по умолчанию - это изменить порядок файла тегов, но я не верю, что ctags предлагает для этого параметр командной строки.
Это не так сложно, как кажется, потому что вам нужен скрипт, который открывает файл тегов, сортирует его по типу тега и записывает обратно. «Вид» в теге - это одиночный символ, описывающий, является ли это функцией (f), прототипом функции (p), макросом, нумерованным именем и т. Д. И т. Д. И т. Д. И т. Д. Если вы используете Linux, это может быть в теории , просто:
#!/bin/sh
ctags -R -f - . | tac > tags
Поскольку tac
меняет порядок строк в файле, это автоматически ставит определение на первое место. Однако, это становится немного сложнее, так как заголовок должен поддерживаться, и Vim предпочитает сортировать файл тегов, поэтому лучше просмотреть файл и отсортировать первую запись (имя тега) в прямом порядке, а затем вид в обратном порядке. Поэтому что-то более сложное может быть лучше.
Я прошу прощения за бесстыдный плагин, но я написал плагин Vim, который (косвенно) делает то, что вам нужно. Он предназначен для добавления множества дополнительных групп подсветки для таких вещей, как имена функций, макросы, перечисления и т. Д. Однако одна из других вещей, которые это делает, - это повторная сортировка файла тегов, так что реализация функции предшествует объявлению функции, тем самым достижения того, чего вы хотите (у меня была такая же потребность, как и у вас). Если вам не нужна какая-либо из функций подсветки, вы, вероятно, можете легко ее удалить: это довольно простая программа на Python и еще более простой скрипт Vim, которые доступны на my site .