2011-07-12 11 views
12

Hago un uso extenso de docstrings de líneas múltiples en mi código fuente python para incluir doctests. Desafortunadamente, vim/gvim parece tener dificultades con el resaltado de sintaxis, ocasionalmente pierde su lugar y olvidando que está en el medio de un literal de cadena, y el resaltado "voltea" de cadena a fuente y de origen a cadena.gvim cadena larga multilínea que resalta

Puedo desplazarme hacia arriba y hacia abajo nuevamente, y vim generalmente soluciona el problema, pero a veces me lleva unos pocos intentos.

Aparte de hacer mis documentos más cortos, ¿hay alguna manera de ayudar a vim a mantener el resaltado en estos largos literales en orden?

Respuesta

15

:syntax syn controla cómo Vim sincroniza el estado de la sintaxis que debe aplicarse en un punto particular del texto (:help syn-sync). Para la sincronización más precisa (pero esto retardará vim hacia abajo), trate de:

autocmd BufEnter * :syntax sync fromstart 

O si lo desea sincronizar manualmente cuando note que está mal, trate de este comando (se puede asignar a un atajo de teclado):

:syntax sync fromstart 

También puede encontrar minlines útil. De :help syn-sync

Si los "MinLines = {N}" se da argumento, el análisis comienza siempre al menos que muchas líneas hacia atrás. Esto se puede usar si el análisis puede tomar algunas líneas antes de que sea correcto o cuando no sea posible usar la sincronización.

Así que poner esto en su .vimrc pueden ayudar:

syntax sync minlines=500 

Editar: encontrado esta página que tiene todo lo que necesita: http://vim.wikia.com/wiki/Fix_syntax_highlighting

+0

utilizo 'syn sincronización fromstart' regularmente (pero no del todo siempre) y no han notado alguna vez realmente ningún tipo de ralentización, incluso durante la edición de varios cientos de kilobytes archivos de JavaScript. El hardware moderno es bastante poderoso. Con HTML lo encuentro especialmente útil. –

+0

cierto. Solo como referencia, en un Core i7 con 8 gig de RAM y un disco duro rápido, el punto en el que se puede percibir una ralentización es si voy más allá de unas 60k líneas de longitud normal (tamaño de archivo de aproximadamente 2.5MB). – PonyEars

2

Es probable que no quiere fromstart sincronización para todos los tipos de código que está editando, solo html. Si ese es el caso, agregar esto a su vimrc:

autocmd FileType html autocmd BufEnter * :syntax sync fromstart 
Cuestiones relacionadas