«Java Sucks» - да, я знаю, что мнение определенно не поддерживается всеми:)
Я придерживаюсь этого мнения, потому что большинство приложений Java, которые я видел, - это память свиньи, бегите медленно, ужасный пользовательский интерфейс и т. д.
G-Man
Я думаю, что проще всего использовать "g ctrl-]" вместо просто "ctrl-]". Если есть только одно совпадение, оно приведет вас туда. Если есть несколько совпадений, он перечислит их все, позволяя вам выбрать тот, который вам нужен, например: tselect. Лучший из двух миров. :)
У вас должна быть возможность использовать tn
и tp
для перехода к различным совпадающим тегам.
^]
, чтобы перейти к первому совпадению. : tn
, чтобы перейти к следующему. : tn
тоже много раз вы можете вводить : tp
, чтобы вернуться к предыдущему. :tselect my_little_function
, и вы получите список совпадений. или если вы перейдете к тегу и вас это не устроит, введите
:tselect
И вы получите список альтернатив для последнего активного тега.
Я считаю, что Vim по умолчанию переходит к первому тегу в файле тегов. Вы можете выбрать другой, если хотите: используйте : tj
(аналогично: tselect, но автоматически переходите, если есть только одно совпадение) или Ctrl -]
, за которым следует : tn
).
Единственный способ изменить значение по умолчанию - изменить порядок файлов тегов, но я не верю, что ctags предлагает для этого параметр командной строки.
Это не ' Как бы сложно это ни звучало, поскольку вам в основном нужен сценарий, который открывает файл тегов, сортирует его по «типу» тега и снова записывает его. «Тип» в теге - это единственный символ, описывающий, является ли это функцией (f), прототипом функции (p), макросом, перечисляемым именем и т. Д. И т. Д. И т. Д. И т. Д. И т. Д. Если вы используете Linux, это могло бы быть: теоретически , быть таким простым, как:
#!/bin/sh
ctags -R -f - . | tac > tags
Поскольку tac
меняет порядок строк в файле на обратный, это автоматически помещает определение первым. Однако это становится немного сложнее, так как заголовок необходимо поддерживать, а Vim предпочитает, чтобы файл тегов был отсортирован, поэтому лучше просмотреть файл и отсортировать его по первой записи (имени тега) в прямом порядке, а затем вид в обратном порядке. Поэтому что-то более сложное может быть лучше.
Я прошу прощения за бессовестный плагин, но я написал плагин Vim, который (косвенно) делает то, что вам нужно. Он предназначен для добавления большого количества дополнительных групп выделения для таких вещей, как имена функций, макросы, перечисления и т. Д. Однако одна из других вещей, которые это делает, - это повторная сортировка файла тегов, чтобы реализация функции была перед объявлением функции, тем самым достигнув желаемого (у меня была такая же потребность, как и у вас). Если вам не нужны какие-либо функции выделения, вы, вероятно, можете легко избавиться от всего этого: это довольно простая программа на Python и еще более простой сценарий Vim, доступный на моем сайте .
Этот вариант мне подошел больше
Поместите следующую строку в .vimrc и теперь вы можете использовать двойной щелчок мыши (на переменной/вхождении
в вашем файле) для перехода к помеченному месту. Если найдено одно совпадение, то переход будет выполнен сразу. Если совпадает несколько записей, программа попросит пользователя ввести данные.
:map <2-LeftMouse> g< c-]>