2009-12-01 4 views
0

Теперь у меня есть два каталога, все файлы заголовков * .h включены в каталог/inc, а весь файл c * .c хранятся в/src.Проблема ctags при создании тегов для файлов .h и .c в двух разных каталогах

каталог так же, как это, (/ Проект на уровне каталога):

/project-- |----/inc 
      |----/src 

Я хочу использовать Ctrl +] найти определение одного параметра или одной функции в исходном файле, как например, .c. Как сгенерировать эти теги?

Мой метод:

(1) cd to the /project directory 

(2) ctags inc/*.h src/*.c 

Затем файл тегов генерируется там, однако, когда я открываю файл примера и с помощью «Ctrl +]», он не может привести меня к его определению. Зачем???

Нужно ли создавать файл тегов под/src ???

Любая помощь? Большое спасибо!

+0

Фактически, когда я использую каталог ctags -R под/src, это может привести меня к некоторому определению в исходных файлах, однако я не уверен, может ли он привести меня к чему-то, что определено в файле заголовка, расположенном под/inc directory ....... – MaiTiano

ответ

2

В Vim, попробуйте ввести:

  1. :pwd
  2. :set tags

Убедитесь, что путь к файлу символам присутствуют на выходе 2, по отношению к пути, который является выходом 1.

ПРИМЕЧАНИЕ. Вы можете установить переменную tags как часть локального .

ОБНОВЛЕНИЕ: Общепринято установить tags на рисунок, подобный tags,../tags,../../tags. С помощью этого шаблона vim будет использовать первый файл тегов, который найдет вашу структуру папок (опять же относительно вашего pwd).

+0

после: установить теги он дает что-то вроде этого «tags =./Tags,./TAGS, tags, TAGS» ... это правильно? – MaiTiano

+0

@MiaTiano: Это значение 'tags' сообщает vim о поиске файла тегов в том же каталоге, в котором вы открыли файл. Бьюсь об заклад, если вы добавили '../ tags' в путь поиска (как указано в моем UPDATE выше), это сработает для вас. Суть в том, что vim начинает искать теги из 'pwd'.Имена файлов, которые он ищет, перечислены в ': set tags'. –

+0

спасибо очень очень. :) – MaiTiano

2

Перейдите в/project и используйте команду «ctags -R.». В вашем .vimrc поместите команду «set tags =/project/tags». Выйдите из vim и введите его снова. Теги теперь должны работать.

+0

, если я добавлю/проект/теги в .vimrc, тогда все в будущем повлияет на это предложение, верно? Кроме того,/project/tags являются частью пути, мне нужно добавить весь путь к установочным тегам = ~/abcd/project/tags ?? – MaiTiano

+0

Да, помещая его в .vimrc, все это затронет, пока вы его не удалите. У меня есть куча файлов тегов, разделенных запятыми в моем .vimrc. И да, вам нужен полный путь. Ваш вопрос упоминается/проект, поэтому я предположил, что это полный путь. –

+0

Спасибо за ваш подробный и добрый ответ. Я многому научился у вас. :) – MaiTiano