Как настроить мой vim, чтобы помочь мне найти определение терминов? - PullRequest
0 голосов
/ 17 мая 2011

Например, когда я сталкиваюсь с:

funcMiracle (argMagic);

Я хочу нажать кнопку, и woosh, я сразу же перехожу к определению funcMiracle, независимо от того, находится оно в текущем файле или нет.

Ответы [ 2 ]

3 голосов
/ 17 мая 2011

Установите exberant ctags на вашем компьютере.Затем из командной строки в корне вашего проекта:

ctags -R 

Нажатие ctrl-[ в Vim перейдет к определению символа.После прыжка ctrl-T вернет вас туда, откуда вы только что пришли.

2 голосов
/ 17 мая 2011

Обновлено

Поскольку я прочитал ваш комментарий:

Вопрос в том, что, хотя он может помочь мне найти какую-либо функцию в моем проекте, он выиграл 't автоматически находит внешние функции, которые я, вероятно, связал из заголовочного файла, например, определение fgets () в stdio.h

Посмотрите на

  • C - [ CI для поиска включаемого файла
  • C - [ d для поиска и определения
  • Shift-K открывает справочную страницу для идентификатора под курсором (например, fgets:)

С помощью сценария man.vim Вы также можете вызвать man-страницу в буфере Vim для простого копирования / вставки, выделения, перекрестных ссылок, как с помощью helptags и т. д. Клавиша: Leader-K

Еще раз, :he ^[^I и т. д.являются хорошими указателями для получения дополнительной помощи / подробностей


Теги на внешних проектах

Вы можете создавать теги для внешнего проекта (скажем, заголовочные файлы linux), используя ctags какпоказано ранее (ниже).Затем нужно сообщить Vim, где находятся ваши теги:

:se tags+=/usr/src/linux/tags

Обратите внимание на +=: Vim может обрабатывать несколько файлов тегов одновременно


Стандартный подход

  1. установка (если у вас нет), ctags
  2. :!ctags % (или для рекурсивной целой папки и т. Д. :!ctags -R %:h или :!ctags **/*.c и т. Д.)
  3. использовать теги ( C -] или Ctrl-MouseButton, см. :help tags для полной справки)

Вы можете интегрировать создание тегов в ваш make-файл, если выИмеется.Exuberant ctags легко настраивается;Я обычно использую

ctags --exclude=packagedir -R --c++-kinds=+p --fields=+iaS --extra=+q

для использования с C ++, но он поддерживает множество языков из коробки с нулевой конфигурацией.

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