Как etags может обрабатывать несколько каталогов - PullRequest
3 голосов
/ 08 октября 2010

Как можно в emacs и C ++ расширять etags, охватывающие несколько каталогов? (Я не имею в виду рекурсивный etgas, который имеет прямое решение с помощью опции -R).

Нечто подобное необходимо, например, в случае, когда мы используем стороннюю библиотеку, включая ее заголовки, которая может быть установлена ​​в любом месте структуры каталогов.

Схожая проблема, с которой я сталкиваюсь в emacs как редакторе C ++, заключается в том, как открыть включенный файл заголовка непосредственно из его директивы #include.

Это тривиально для IDE (например, VC _ ++), поскольку путь включаемых заголовков является частью проекта, но я не могу найти аналогичное решение для emacs, который в качестве более тонкой среды не использует концепцию проекта

Ответы [ 2 ]

3 голосов
/ 08 октября 2010

Отвечая на главный вопрос: используйте find для просмотра ваших каталогов. Пример в моем скрипте тегов:

find . \( -name "*[tT]est*" -o -name "CVS" -o -name "*#*" -o -name "html" -o -name "*~" -o -name "*.ca*" \) -prune -o \( -iname "*.c" -o -iname "*.cpp" -o -iname "*.cxx" -o -iname "*.h"  -o -iname "*.hh" \) -exec etags -a {} \;

Совет для C ++ и решение для включенного заголовка: посмотрите, работает ли cscope лучше длявы.

2 голосов
/ 08 октября 2010

Вы также можете посмотреть GNU global вместо etags, а также ff-find-other-file и ffap и связанные с ними функции поиска файла в точке, чтобы перейти к включенному файлу, в котором вы находитесь,Оба набора функций имеют различные параметры настройки, поэтому вы можете указать им, где искать заголовки.

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