Vim, come ricaricare l'evidenziazione della sintassi


Risposte:


97

Uso :syntax sync fromstart

Ho ricevuto quel suggerimento da http://vim.wikia.com/wiki/Fix_syntax_highlighting

L'articolo suggerisce anche di creare una mappatura per quel comando, ad esempio per mappare F12:

noremap <F12> <Esc>:syntax sync fromstart<CR>
inoremap <F12> <C-o>:syntax sync fromstart<CR>

Funziona, ma rimuove la sottolineatura per il controllo ortografico. Qualche modo per impedirlo?
Alec Jacobson

1
Scusa non lo so. Non ho niente che faccia il controllo ortografico. Può dipendere dal tuo particolare componente aggiuntivo. Se nessun altro risponde, potrebbe valere la pena comporre una domanda con tutte le informazioni pertinenti.
Mike Lippert

3
Finisco per usare autocmd BufEnter,InsertLeave * :syntax sync fromstartper forzare una sincronizzazione della sintassi dopo aver inserito un buffer. La sincronizzazione della sintassi viene attivata anche quando si verifica un InsertLeaveevento.
Samuel Li

Forse qualcuno lo troverà utile un giorno. Usa filetype=sho syntax=shper bash e mi piace, no bash. Mi ci è voluto un po 'di tempo per capirlo.
Quapka

Sto usando l' :do Syntaxequivalente del :doautocmd Syntaxquale è solo un po 'più corto, quindi non devi collegarlo (almeno non devo chiamare questo comando così spesso, quindi lo digito). Lo uso principalmente in alcuni file che contengono espressioni regolari che causano l'interruzione dell'evidenziazione della sintassi quando apro il file tramite netrw.
Rens Tillmann

54

Provare:

:e

Se non sono presenti modifiche non salvate al file.

O:

:syn off | syn on

Crea una mappatura per alleviare il dolore, qualcosa del tiponmap <F6> :Rmodel|e<CR>
holygeek

2
Sembra che dovrebbe esserci un comando incorporato per aggiornare l'evidenziazione della sintassi. Qualcos'altro che sembra funzionare è saltare a un'altra parte del file, come l'inizio o la fine, e tornare indietro, ad esempio:gg``
Keith Pinson

2
": syntax sync fromstart" (senza virgolette) non ha ricaricato l'evidenziazione della sintassi del tipo di file sui file che a volte non mostrano la colorazione della sintassi - un problema in corso per me e Vim, per qualche motivo. Tuttavia, ": syn off | syn on" ha funzionato immediatamente. ": e!" eseguirà anche questo ricaricamento, ma attenzione: le modifiche non salvate al file andranno perse!
Victoria Stuart

:syn off | syn oncambia lo
schema dei colori

12

Ho provato tutto quanto sopra - nessuno ha funzionato per me.

L'unica cosa che funziona è: :filetype detect quindi ho rimappato una scorciatoia veloce :noremap <Leader>,ftd :filetype detect


10

A volte la sintassi va bene, ma tutto ciò che si rompe sono le pieghe. In quel casozx aiuta molto.

Dalla documentazione VIM:

zx

Aggiorna pieghe: annulla le pieghe aperte e chiuse manualmente: riapplica 'foldlevel', quindi fai "zv": visualizza la linea del cursore. Forza anche il ricalcolo delle pieghe. Ciò è utile quando si utilizza 'foldexpr' e il buffer viene modificato in modo tale che le pieghe non vengano aggiornate correttamente.



-1

Provare:

:Rrefresh!

Questo comando aggiorna alcune impostazioni memorizzate nella cache e ricarica anche rails.vim .
Mi aiuta ad aggiornare l'evidenziazione della sintassi in Rails.


Questo vale solo per rails.vime non è una soluzione generale. Senza quel plugin, questo comando non esiste.
wchargin

-1

Puoi anche provare:

CTRL-L

Dai documenti VIM ( :h CTRL-L):

Cancella e ridisegna lo schermo. Il ridisegno può avvenire più tardi, dopo l'elaborazione di typeahead.


Ctrl-L aggiorna lo schermo. Non fa differenza se hai apportato modifiche al file di sintassi corrispondente.
Alexis Wilke
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.