2010-06-03 5 views
28

Quando corro ctags -R *, ottengo degli errori che dicono che tutte le directory non sono file regolari e li salta invece di generare ricorsivamente i tag per loro.Il comando ctags non recita dicendo "non è un file normale"

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. 

Qual è il problema?

risposta

59

Simile a this e this, il problema è che non sta eseguendo esuberante Ctags, si sta eseguendo GNU Emacs etags, che fornisce anche un file eseguibile ctags. Eseguire ctags --version e vedrete qualcosa di simile:

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

E se si guarda nella pagina man, vedrai che -R è in realtà equivalente a --no-regex. In effetti, la pagina man non menziona nemmeno la ricorsione come opzione.

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

Si potrebbe forse generare i tag in modo ricorsivo utilizzando la magia della shell, ma si può incorrere in problemi lungo la strada se vi aspettate Exuberant Ctags. Quindi la soluzione migliore è probabilmente quello di installare i ctags si desidera invece:

sudo apt-get install exuberant-ctags 

esuberante Ctags può essere installato anche da fonte:

http://ctags.sourceforge.net/ 
+1

(una ricerca semplice per i termini del problema su google salta fuori nulla di utile, quindi spero che questo aiuterà le persone in futuro) – indiv

+2

+1 per una risposta molto utile che risolve il problema –

7

Si verifica se si dispone di Elvis-tools installati. rimuoverli con qualcosa come

sudo apt-get remove elvis-tools 

e quindi installare esuberanti-ctags da

sudo apt-get install exuberant-ctags 
+0

+1 Ha risolto il mio problema –

Problemi correlati