2009-09-08 11 views
5

Me molesta el resaltado de sintaxis de python predeterminado en Vim.sintaxis de Vim resaltando 'else' para Python

No resalta correctamente la declaración else:. Vim solo resalta la instrucción else si tengo un espacio en blanco entre else y los dos puntos :, entonces else : funciona, pero else: no.

Debe ser fácil de arreglar.

estoy usando Vim 7.2

Respuesta

6

tuve declaración abajo en mi archivo vimrc. Esto hizo otra cosa: ser tokenizado como una sola palabra. Después de eliminar eso más: el resaltado de sintaxis funciona bien.

set iskeyword+=:

+0

Eso es exactamente. ¡Gracias Señor! – Bob

+0

Para obtener un efecto similar, puede agregar una regla de sintaxis solo para dos puntos que luego vincula el resaltado para la palabra clave. – SingleNegationElimination

+1

¿Estás seguro de que el comando es correcto? '+ =:' no tuvo ningún efecto para mí, '- =:' que Mark Roberts menciona que sí. –

4

Se debe trabajar de forma predeterminada.

Busque un archivo que es algo como esto:

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

Debe haber una línea de allí que se parece a esto:

syn keyword pythonConditional if elif else 

Si no es así, investigar más a fondo. ¿Funciona elif?

3

Esto hace aparecer periódicamente, y que he tomado para poner esto en mi vimrc:

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

Sin embargo, esto significa que los dos puntos no se resaltarán también. A uno puede gustarle esto o no le gusta este hecho. – Zelphir

0

En mi ~/.vim /syntax/python.vim, tengo una línea

syn keyword pythonConditional else: 

que resuelve este problema.