2011-11-29 8 views
9

Estoy intentando editar el archivo de sintaxis python.vim para duplicar el resaltado de sintaxis para python en Textmate. La imagen adjunta ilustra el resaltado de los parámetros de función que estoy luchando por lograr.Vim: Edición del archivo de sintaxis python.vim para resaltar como Textmate

imgur pic of code

El sí mismo, a, b se resalta en Textmate pero no en Vim. Pensé que tenía que hacer lo siguiente.

  1. de ajuste de una nueva región

    syn region pythonFunction start="(" end=")" contains=pythonParameters skipwhite transparent 
    
  2. tratar de coincidir con una cadena seguida de una coma

    syn match pythonParameters ".*" contained 
    

Así, en el punto 2 del "*" coincidirá con cualquier cadena en este momento y debe ampliarse aún más para ser correcta. Sin embargo, no estoy seguro de si estoy en el camino correcto ya que la coincidencia en 2 no está restringida a en la región entre los corchetes(). Cualquier consejo o aporte será apreciado.

EDIT 1: Si alguien se preguntaba cómo resultó eventualmente.

Aquí está mi resaltado de sintaxis vim para python.

imgur pic of code

EDIT 2: Así que sólo por la minuciosidad último he creado una página de GitHub para ello.

http://pfdevilliers.github.com/Pretty-Vim-Python/

+0

que es un poco más complejo que lo que yo al corriente. Me interesaría ver tu código final. –

+0

Claro que lo compartiré en Github tan pronto como no sea tan pirateado como lo es en este momento. Tomé prestado de la sintaxis de ruby.vim y tu ejemplo me dio lo suficiente como para descubrir el resto que necesitaba. – pfdevilliers

+1

http://github.com/pfdevilliers/Pretty-Vim-Python un enlace a los archivos en Github. Cualquier mejora es bienvenida. – pfdevilliers

Respuesta

6

Ok, usted tiene un par de problemas.

  1. Ya existe una región llamada pythonFunction, para resaltar def y nombres de funciones.
  2. Esta región coincidirá con cualquier paréntesis y en cualquier lugar

Por lo tanto, encontrar la combinación pythonFunction, y el cambio a esto:

syn match pythonFunction 
     \ "\%(\%(def\s\|class\s\|@\)\s*\)\@<=\h\%(\w\|\.\)*" contained nextgroup=pythonVars 

Adición nextgroup dice vim para que coincida con pythonVars después de una definición de función.

A continuación, añadir:

syn region pythonVars start="(" end=")" contained contains=pythonParameters transparent keepend 
syn match pythonParameters "[^,]*" contained skipwhite 

Por último, para resaltarlo realidad, encontrar la sección HiLink, y añaden:

HiLink pythonParameters  Comment 

Cambio Comment a la agrupación que desea, o añadir su propio. Estoy usando Statement.

0

Vim, Resalte juego paréntesis(), corchetes [] y llaves: {}

Las opciones de configuración para configurar los colores de primer plano y de fondo bajo el cursor cuando más de un paréntesis, cuadrado soporte o apoyo rizado es éste:

hi MatchParen  ctermfg=16 ctermbg=208 cterm=bold 

Para activar/desactivar el color de fondo de la línea bajo el cursor:

:set cursorline 
:set nocursorline 

para establecer el color del color de fondo de la línea bajo el cursor:

hi VisualNOS     ctermbg=999 
hi Visual      ctermbg=999 

enter image description here

Aquí está mi adaptación:

https://github.com/sentientmachine/erics_vim_syntax_and_color_highlighting

Cuestiones relacionadas