una sitio raiz qué que para ejemplos directorio cual crea como carpeta vim ctags exuberant-ctags

vim - sitio - ¿Cómo excluir directorios múltiples con ctags exuberantes?



que es la carpeta root (3)

He mirado e intentado usar ctags exuberantes sin suerte con lo que quiero hacer. Estoy en un Mac tratando de trabajar en un proyecto en el que quiero excluir directorios como .git, node_modules, test, etc. Cuando intento algo como ctags -R --exclude=[.git, node_modules, test] obtengo nada a cambio Realmente solo necesito tenerlo ejecutado en mi directorio central. ¿Alguna idea sobre cómo lograr esto?


La opción --exclude no espera una lista de archivos. De acuerdo con la página del ctags de ctags , "Esta opción se puede especificar tantas veces como se desee". Entonces, es así:

ctags -R --exclude=.git --exclude=node_modules --exclude=test


Leer el manual anual de antastico siempre debe ser el primer paso de cualquier intento de resolver un problema.

Desde $ man ctags :

--exclude=[pattern] Add pattern to a list of excluded files and directories. This option may be specified as many times as desired. For each file name considered by both the complete path (e.g. some/path/base.ext) and the base name (e.g. base.ext) of the file, thus allowing patterns which match a given file name irrespective of its path, or match only a specific path. If appro- priate support is available from the runtime library of your C compiler, then pattern may contain the usual shell wildcards (not regular expres- sions) common on Unix (be sure to quote the option parameter to protect the wildcards from being expanded by the shell before being passed to ctags; also be aware that wildcards can match the slash character, ''/''). You can determine if shell wildcards are available on your platform by examining the output of the --version option, which will include "+wild- cards" in the compiled feature list; otherwise, pattern is matched against file names using a simple textual comparison. If pattern begins with the character ''@'', then the rest of the string is interpreted as a file name from which to read exclusion patterns, one per line. If pattern is empty, the list of excluded patterns is cleared. Note that at program startup, the default exclude list contains "EIFGEN", "SCCS", "RCS", and "CVS", which are names of directories for which it is generally not desirable to descend while processing the --recurse option.

De las dos primeras frases que obtienes:

$ ctags -R --exclude=dir1 --exclude=dir2 --exclude=dir3 .

lo que puede ser un poco detallado, pero para eso son los alias y las asignaciones, etc. Como alternativa, obtienes esto del segundo párrafo:

$ ctags -R [email protected] .

con lo siguiente en .ctagsignore :

dir1 dir2 dir3

que funciona a excluir esos 3 directorios sin tanto escribir.


Puede encapsular una lista separada por comas con llaves para manejar múltiples con una opción --exclude :

ctags -R --exclude={folder1,folder2,folder3}

Esto parece funcionar solo para las carpetas en la raíz de donde está emitiendo el comando. La exclusión de carpetas anidadas requiere una opción separada --exclude .