2009-09-08 21 views
5

Mi sto irritando con l'evidenziazione della sintassi python predefinita in Vim.Vim sintassi di evidenziazione 'else:' per Python

Non evidenzia l'istruzione else: correttamente. Vim evidenzia solo la dichiarazione else se ho uno spazio bianco tra lo else ei due punti :, quindi else : funziona, ma non lo è lo else:.

Deve essere facile da risolvere.

sto usando Vim 7.2

risposta

6

avevo seguito dichiarazione nel mio file vimrc. Questo ha fatto altro: essere tokenized come una parola. Dopo aver rimosso il resto: l'evidenziazione della sintassi funziona bene.

set iskeyword+=:

+0

Esattamente. Grazie Signore! – Bob

+0

Per ottenere un effetto simile, è sufficiente aggiungere una regola di sintassi solo per i due punti che poi collega l'evidenziazione per la parola chiave. – SingleNegationElimination

+1

Sei sicuro che il comando sia corretto? '+ =:' non ha avuto effetto per me, '- =:' che Mark Roberts ha menzionato. –

4

Dovrebbe funzionare per impostazione predefinita.

Cercare un file che è qualcosa di simile:

/usr/share/vim/vim72/syntax/python.vim 

Ci dovrebbe essere una linea di là che assomiglia a questo:

syn keyword pythonConditional if elif else 

In caso contrario, indagare ulteriormente. elif funziona?

3

Questo apre periodicamente, e ho preso a mettere questo nel mio vimrc:

" No seriously, else: is the same as else 
autocmd BufEnter,BufRead,BufNewFile *.py set iskeyword-=: 
+0

Tuttavia, ciò significa che i due punti non saranno evidenziati. A qualcuno potrebbe piacere o non piacere questo fatto. – Zelphir

0

Nel mio ~/.vim /syntax/python.vim file, ho una riga

syn keyword pythonConditional else: 

che risolve questo problema.

Problemi correlati