2011-01-20 16 views
7

Sé que Vim tiene un soporte sofisticado para las etiquetas, pero estoy luchando para que funcionen con JavaScript y TCL.Uso de etiquetas en Vim

Estoy usando Vim 7.2.330 en Ubuntu Lucid, una instalación estándar de Vim y una instalación Exuberante CTags estándar.

deseo de mantener mis etiquetas en un archivo llamado ~/.vimtags/tags

He incluido el archivo de etiquetas en mi archivo vimrc set tags+=$HOME."/vimtags/tags".

He ejecute el siguiente comando desde el directorio de código base:

ctags-exuberant -f ~/.vimtags/tags -h ".js" --totals=yes --tag-relative=yes --fields=+akst -R 

también tengo el siguiente en mi archivo .ctags - vi un artículo en algún lugar en línea que decía que se debe añadir estos para que sea compatible con JavaScript moderno.

--langdef=js 
--langmap=js:.js 
--regex-js=/([A-Za-z0-9._$]+)[ \t]*[:=][ \t]*\{/\1/,object/ 
--regex-js=/([A-Za-z0-9._$()]+)[ \t]*[:=][ \t]*function[ \t]*\(/\1/,function/ 
--regex-js=/function[ \t]+([A-Za-z0-9._$]+)[ \t]*\(([^)])\)/\1/,function/ 
--regex-js=/([A-Za-z0-9._$]+)[ \t]*[:=][ \t]*\[/\1/,array/ 
--regex-js=/([^= ]+)[ \t]*=[ \t]*[^"]'[^']*/\1/,string/ 
--regex-js=/([^= ]+)[ \t]*=[ \t]*[^']"[^"]*/\1/,string/ 

Cuando cargo Vim, definitivamente se carga el archivo de etiquetas. Un set tags? muestra que el archivo de etiqueta ha sido incluido.

Sin embargo, cada vez que CTRL-] aparece una palabra clave, siempre dice que no hay etiquetas.

¿Podría compartir cómo configura las etiquetas de Vim con JavaScript y también mostrar cómo utiliza el sistema de etiquetas? Parece ser una gran característica de Vim, si tan solo pudiera hacerlo funcionar.

+0

¿Cómo resolviste esto? Parece que al menos un par de personas están buscando una respuesta (2 favoritos), pero la respuesta aceptada no parece ser la solución a su problema. – intuited

Respuesta

3

Sin embargo, cada vez que presiono CTRL-] sobre una palabra clave, siempre dice que no hay etiquetas. No se supone que

etiquetas para trabajar en palabras clave, trabajan en los símbolos que haya definido (funciones, variables, constantes, etc.) en los archivos indexados. Entonces, si está probando una palabra clave Javascript, no funcionará. Tampoco funcionará en una función de una biblioteca, si no ha incluido la biblioteca JS en su archivo de etiquetas (usando ctags -a por ejemplo).

Si quiere estar seguro de lo que ha sido indexado y lo que tiene acceso con <C-]>, puede simplemente abrir su archivo de "etiqueta", y ver lo que hay allí.

:e ~/.vimtags/tags

Debería ver un encabezado con información relativa al formato de archivo de etiquetas, seguido de una lista de etiquetas, que incluyen el nombre de la etiqueta seguida de una ruta de archivo, un número de línea, y un carácter que identifica el tipo de la etiqueta

Si tiene algo de contenido, debería funcionar para los símbolos listados.

En cuanto a su configuración de ctag, se ve bien en mi opinión.

+0

Por palabras clave, quise decir variables, funciones ... etc. Pero todavía no puedo hacer que funcione. He logrado encontrar etiquetas en una o dos variables, pero debería haber muchas más ... – mrwooster

+0

@mrwooster: Ok, sospechaba que esa palabra clave se usó en un sentido de pérdida. Si abre su archivo de etiquetas, ¿puede identificar el tipo de etiqueta que se incluye y el tipo de etiqueta que parece estar perdida? Posiblemente pueda seguir de esta manera si es un problema de ruta (algunos de sus archivos son ignorados) o un problema de expresiones regulares (algunas funciones o declaraciones son ignoradas), etc. –

+3

@mrwooster: si finalmente logró que la etiqueta funcione en su configuración , ¿puedes decirnos qué estuvo mal? Podría beneficiar a la siguiente persona con el mismo tipo de problema. –

2

Hay una manera muy ordenada y fácil de conseguir JavaScript de código fuente de navegación/tag-lista en Vim, utilizando DoctorJS de Mozilla (anteriormente conocido como jsctags).

See my answer for this question for more info.

Disfrútalo.:)