Команда ctags не рекурсивно говорит, что это не обычный файл

Когда я запускаю ctags -R *, я получаю сообщения об ошибках, говорящих о том, что все каталоги не являются обычными файлами, и он пропускает их вместо того, чтобы рекурсивно генерировать для них теги.

ctags: skipping arpa: it is not a regular file.
ctags: skipping asm: it is not a regular file.
ctags: skipping asm-generic: it is not a regular file.
ctags: skipping bits: it is not a regular file.
ctags: skipping blkid: it is not a regular file.
ctags: skipping boost: it is not a regular file.

В чем проблема?


person indiv    schedule 03.06.2010    source источник


Ответы (2)


Аналогично этому и this, проблема в том, что вы не используете Exuberant Ctags, вы используете GNU Emacs etags, который также предоставляет исполняемый файл ctags. Запустите ctags --version и вы увидите что-то вроде этого:

ctags (GNU Emacs 23.1)
Copyright (C) 2009 Free Software Foundation, Inc.
This program is distributed under the terms in ETAGS.README

И если вы посмотрите на справочную страницу, вы увидите, что -R на самом деле эквивалентно --no-regex. На самом деле, на справочной странице даже не упоминается рекурсия как вариант.

   -R, --no-regex
          Don't  do  any more regexp matching on the following files.  May
          be freely intermixed with filenames and the --regex option.

Вероятно, вы могли бы генерировать теги рекурсивно, используя магию оболочки, но вы можете столкнуться с проблемами в будущем, если ожидаете Exuberant Ctags. Поэтому лучшим решением, вероятно, будет установка нужных вам ctags:

sudo apt-get install exuberant-ctags

Exuberant Ctags также можно установить из исходников:

http://ctags.sourceforge.net/
person indiv    schedule 03.06.2010
comment
(простой поиск проблемных терминов в google не дает ничего полезного, так что, надеюсь, это поможет людям в будущем) - person indiv; 03.06.2010

Это происходит, если у вас установлен elvis-tools. удалите их чем-то вроде

sudo apt-get remove elvis-tools 

а затем установите exuberant-ctags с помощью

sudo apt-get install exuberant-ctags
person kartik    schedule 12.07.2012