2013-02-08 18 views
7

Sto usando vim per modificare alcuni file python e recentemente si verifica sporadicamente che l'evidenziazione della sintassi scompare dopo aver salvato il buffer all'interno di vim. Ho provato a resettare syntax on e set filetype=python ma inutilmente. Non ho idea di cosa causi questo problema, quindi in questo momento ho informazioni diagnostiche minime. Ma qualcuno l'ha già incontrato prima o dove potrebbero andare le cose?L'evidenziazione della sintassi scompare casualmente durante il salvataggio del file

+0

potete inserire il vostro vimrc? – mindvirus

+0

E quali plugin? – Kevin

+0

@mdkess È piuttosto lungo, lo carico solo su pastebin http://pastebin.com/dggSfKkX – nye17

risposta

5

Questa non è una soluzione, ma è difficile scrivere/leggere nei commenti.

Intendevo dire che stavo lavorando con la sintassi/l'evidenziazione quando ho iniziato a correggere il mio .vimrc, ecco perché l'ho notato.
syntax on/syntax enable si sta preparando solo per il caricamento di file (aggiungendo molto au a BufNewFile/BufRead). Quindi se qualche plugin ha problemi con le impostazioni sintassi/highlight durante la scrittura del file, il file deve essere caricato di nuovo per far sì che tutto "magico" avvenga, non è sufficiente impostare filetype. Fare :au BufRead e vedrete tutti gli autocommands aggiunti quando si avvia la sintassi. Ma il file deve essere caricato quindi per ottenere tutti i settigs.
vedere questo:>syntax-loading

Se non si desidera ricaricare il file, provare syntax enable, penso che sia diverso da syntax on.
O provare anche facendo :doautocmd filetypedetect BufRead %, vedere>autocmd-execute

Non so che cosa sta causando il problema, può essere tu? Se hai aggiunto alcuni autocomandi o hai fatto i tuoi colori/sintassi?
Altrimenti, fino a quando non si ottiene una soluzione, è possibile provare ad aggiungere autocmd BufWritePost * <with the commands above that works> alla fine del proprio .vimrc, in tal caso utilizzare augroup.

Ecco un esempio:

augroup myResetSyntax 
    au! 
    autocmd BufWritePost * syntax enable | doautocmd filetypedetect BufRead "%" 
augroup END 
1

Ora dopo un po 'mi rendo conto l'evidenziazione irregolare è causata piegando piuttosto che di qualsiasi forze misteriose connessi con il salvataggio dei file, in modo da una semplice correzione * sarebbe quella di mettere il seguente nel mio vimrc

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

e premere F9 ogni volta che succede qualcosa di vago.

  • Soluzione scoperto da here
2

È inoltre possibile ripristinare la sintassi ricaricando il buffer semplicemente:

:e