Как создать файл ctags рекурсивно?

Я хотел бы создать файл тегов, используя ctags для полного дерева исходников. Теперь я бы вообще побежал ctags *.c но проблема в верхнем каталоге, там нет исходных файлов. Кроме того, я хотел бы это забрать *.c,*.h,*.cpp & *.hpp файлы, как я могу это сделать?

2 ответа

Решение

Ты можешь использовать ctags --recurse или же ctags -R рекурсивно спуститься в дерево каталогов.

Если вы хотите сгенерировать теги для файлов c/ C++/javascript/java/python, присутствующих в вашем репозитории git (с учетом.gitignore):

git ls-files | ctags --links=no --languages=c,c++,javascript,java,python -L- 

Вы можете использовать ctags -R или же stags --recurse, как предлагали другие.

Однако, как упомянул пользователь cxw, это не работает в Ubuntu 18.04.

Вот что я нашел. При установке по умолчанию:

# ctags --version
ctags (GNU Emacs 25.2)
Copyright (C) 2017 Free Software Foundation, Inc.
This program is distributed under the terms in ETAGS.README

Затем после sudo apt-get install ctags, Я получил:

# ctags --version
Exuberant Ctags 5.9~svn20110310, Copyright (C) 1996-2009 Darren Hiebert
  Addresses: <dhiebert@users.sourceforge.net>, http://ctags.sourceforge.net
  Optional compiled features: +wildcards, +regex

И теперь рекурсивный вариант работает.

Если у вас нет источника в корневом каталоге, лучший способ фильтрации - это --languages вариант. Вот тот, который я использовал для проекта на разных языках, где я хотел только теги для файлов Tcl.

ctags -R --languages=Tcl .

Обратите внимание, если вам нужна поддержка нескольких языков, вы можете добавить их с помощью,

Чтобы увидеть список языков, используйте --list-languages

Другие вопросы по тегам