Vim, cómo recargar el resaltado de sintaxis

Respuestas:

95

Utilizar :syntax sync fromstart

Recibí ese consejo de http://vim.wikia.com/wiki/Fix_syntax_highlighting

Ese artículo también sugiere crear un mapeo para ese comando, por ejemplo, para mapear F12:

noremap <F12> <Esc>:syntax sync fromstart<CR>
inoremap <F12> <C-o>:syntax sync fromstart<CR>
Mike Lippert
fuente
Esto funciona, pero elimina el subrayado para la revisión ortográfica. ¿Alguna forma de prevenir eso?
Alec Jacobson
1
Lo siento, no lo sé. No tengo nada que ver con la ortografía. Puede depender de su complemento particular. Si nadie más responde, puede valer la pena redactar una pregunta con toda la información relevante.
Mike Lippert
3
Termino usando autocmd BufEnter,InsertLeave * :syntax sync fromstartpara forzar una sincronización de sintaxis después de ingresar a un búfer. La sincronización de sintaxis también se activa cuando InsertLeaveocurre un evento.
Samuel Li
Quizás alguien encuentre esto útil algún día. Usa filetype=sho syntax=shpara bash y me gusta, no bash. Me tomó un tiempo darme cuenta de eso.
quapka
Estoy usando el :do Syntaxequivalente de :doautocmd Syntaxque es un poco más corto para que no tenga que vincularlo (al menos no tengo que llamar a este comando con tanta frecuencia, así que simplemente lo escribo). Lo uso principalmente en algunos archivos que contienen expresiones regulares que hacen que el resaltado de sintaxis se rompa cuando abro el archivo a través de netrw.
Rens Tillmann
53

Tratar:

:e

Si no tiene cambios sin guardar en el archivo.

O:

:syn off | syn on
Holygeek
fuente
Cree un mapeo para aliviar el dolor, algo comonmap <F6> :Rmodel|e<CR>
holygeek
2
Parece que debería haber algún comando incorporado para actualizar el resaltado de sintaxis. Otra cosa que parece funcionar es saltar a otra parte del archivo, como el principio o el final, y retroceder, por ejemplo:gg``
Keith Pinson
2
": syntax sync fromstart" (sin las comillas) no recargaba el resaltado de sintaxis de tipo de archivo en archivos que a veces no muestran colores de sintaxis - un problema continuo para mí y Vim, por alguna razón. Sin embargo, ": syn off | syn on" funcionó inmediatamente. ":¡mi!" también logrará esa recarga, pero tenga cuidado: ¡los cambios no guardados en su archivo se perderán!
Victoria Stuart
:syn off | syn oncambia el esquema de color para mí, lo cual es molesto
nada101
12

Probé todo lo anterior, ninguno funcionó para mí.

Lo único que funciona es: :filetype detect así que reasigné un atajo rápido :noremap <Leader>,ftd :filetype detect

JESii
fuente
9

A veces la sintaxis está bien, pero todo lo que se rompe son los pliegues. En ese caso zxayuda mucho.

De la documentación de VIM:

zx

Actualizar pliegues: deshaga los pliegues abiertos y cerrados manualmente: vuelva a aplicar 'foldlevel', luego haga "zv": Ver la línea del cursor. También obliga a recalcular los pliegues. Esto es útil cuando se usa 'foldexpr' y el búfer se cambia de manera que los pliegues no se actualicen correctamente.

Wormer
fuente
5

Otra opcion es:

doautocmd Syntax
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
fuente
1
fwiw, esta es la única respuesta que solucionó el resaltado de sintaxis cuando tuve este problema (¡ syntax sync fromstartno hice nada ni hice nada más!)
TJ Ellis
1
Una versión más corta de esto sería:do Syntax
Rens Tillmann
-1

Tratar:

:Rrefresh!

Este comando actualiza ciertas configuraciones en caché y también recarga rails.vim .
Me ayuda a actualizar el resaltado de sintaxis en Rails.

Zenbro
fuente
Esto solo se aplica rails.vimy no es una solución general. Sin ese complemento, este comando no existe.
wchargin
-1

También puedes probar:

CTRL-L

De los documentos de VIM ( :h CTRL-L):

Limpia y vuelve a dibujar la pantalla. El redibujado puede ocurrir más tarde, después de procesar el texto con anticipación.

Jordán
fuente
Ctrl-L actualiza la pantalla. No importa si realizó cambios en el archivo de sintaxis correspondiente.
Alexis Wilke