2008-09-12 45 views
44

¿Alguien más ha encontrado que el resaltado de sintaxis de VIM de Javascript es subóptimo? Me doy cuenta de que a veces necesito desplazarme para ajustar el resaltado de sintaxis, ya que a veces deja de lado misteriosamente todos los resaltados.resaltado de sintaxis de Javascript en vim

¿Hay soluciones o formas de arreglar esto? Estoy usando vim 7.1.

Respuesta

29

Quizás desee probar este improved Javascript syntax highlighter en lugar del que se envía con VIMRUNTIME.

+0

Agradable. Incluso apoya el resaltado para jsdoc. ¡Gracias! – asksol

+0

Cuidado: Noté que el autor del marcador mejorado cambió de la sincronización de sintaxis desde el inicio en la versión más reciente ... por lo que el problema que vio puede comenzar a suceder en este resaltador. Parece que en el pasado, siempre lo hizo desde el comienzo. –

+0

He intentado tanto el lanzamiento del 9/12/08 como el lanzamiento del 17/05/07, y ninguno de ellos mejora la situación. Abrir un archivo javascript complejo en el medio sigue sin resaltar, y debo desplazarme varias páginas hacia arriba para que vim start destaque correctamente. –

12

La sintaxis de sincronización de colores probablemente necesite un ajuste. He descubierto en ciertos contextos que necesito cambiarlo.

Sincronización de sintaxis (": syn-sync de ayuda") controla cómo vim realiza un seguimiento y actualiza su análisis del código para colorear, para que pueda comenzar a dibujar en cualquier parte del archivo.

Los valores por defecto no siempre funcionan para mí, así que a veces me encuentro emisión

:syn sync fromstart 

Sugiero la lectura a través de la documentación bajo

:help syn-sync 

o simplemente comprobar

:help syntax 

y encuentra la sección sobre sincronización.

para tomar una decisión informada entre las cuatro opciones básicas disponibles. Mantengo las asignaciones para las teclas de función para cambiar entre los modos "fromstart" y "ccomment" y para borrar las configuraciones de sincronización.

3

Para una solución rápida y sucia, a veces simplemente me desplazo hacia arriba y hacia abajo y el resaltado se reajusta. Ctrl + L para un redibujado de pantalla también puede solucionarlo.

15

Bueno, modifiqué Yi Zhao's Javascript Syntax y agregué el soporte de Ajax Keywords, también destaqué los métodos de DOM y otros.

Aquí está, está lejos de ser perfecto ya que todavía soy nuevo en Vim, pero hasta ahora me ha funcionado. My Javascript Syntax. Si puede corregirlo, agregue características, por favor haga.

ACTUALIZACIÓN: Olvidé que estos aspectos destacados de sintaxis solo se muestran si los incluyó en su propio esquema de colores, como hice en mi esquema de colores Nazca. Voy a probar si puedo agregar estas líneas en mi archivo de sintaxis modificado.

Siga la nueva versión del archivo de sintaxis javascript en github, ya que ya no es necesario modificar su esquema de colores actual.

+0

Me gusta el aspecto de tus capturas de pantalla, pero tu archivo de sintaxis no Haga algo diferente a la sintaxis vim js estándar cuando lo cargo. Tengo otros archivos de sintaxis personalizados, así que me pregunto por qué los tuyos no funcionan. – djeikyb

+0

El mío está basado en Yi Zhao, que considero que es mucho mejor que la sintaxis estándar de vim js. Además, agregué líneas adicionales a mi esquema de colores 'Nazca' para vim. No he intentado agregar estas líneas directamente al archivo de sintaxis modificado. En realidad, es muy fácil y simple agregar estas líneas a tu propio esquema de colores. –

+0

Ah, no hizo nada porque no vi que también debías agregar líneas adicionales a cualquier combinación de colores. Ya lo pillo. ¡Gracias! – djeikyb

3

Esta es una publicación realmente antigua, pero estaba experimentando lo mismo: a veces la sintaxis resaltada simplemente dejaba de funcionar cuando se miraba la sección javascript en un archivo .html. Como menciona el OP, una solución rápida fue desplazarse hacia arriba y mágicamente, las cosas comenzarían a resaltarse nuevamente.

Hoy encontré el problema subyacente y una buena solución. En Vim, el resaltado de sintaxis usa un contexto para derivar el resaltado correcto, donde el contexto está definido por las líneas anteriores.Es posible especificar cuántas líneas antes de la línea actual se usan emitiendo :syntax sync minlines=200. En este caso, utilizará hasta 200 líneas anteriores como contexto. Es posible utilizar todo el archivo (que puede ser lento para archivos largos) ejecutando :syntax sync fromstart.

Una vez que encontré eso, añade esta línea a mi .vimrc:

autocmd BufEnter *.html :syntax sync fromstart 

Al hacerlo, .html archivos utilizarán todo el archivo como contexto. Por lo tanto, la sección javascript siempre se resaltará correctamente, independientemente de la longitud de la sección JS. Espero que esto ayude a alguien más allá!

+0

Esto es la mejor solución para corregir el problema de resaltado de sintaxis de HTML/JS. No sé por qué VIM todavía tiene este error que no se pudo solucionar. https://github.com/vim/vim/issues/1775 – northtree

Cuestiones relacionadas