2010-07-12 10 views
23

Me pregunto cómo podría configurar vim para colorear los nuevos elementos html5 (es decir, "lienzo" y "video") como lo hace con el "script" existente, "cuerpo" "elementos (o palabras reservadas en otros lenguajes como" def "de python) etc. La versión actual es de MacPorts típicamente usados ​​en un emulador de terminal.Cómo actualizar Vim para codificar con colores nuevos elementos html

Respuesta

29

html.vim es el archivo de sintaxis que Vim consulta para determinar qué etiquetas se colorearán. La ubicación de esto dependerá de su instalación de Vim. Dentro de este archivo de sintaxis verá muchas líneas que se parecen a lo siguiente:

" new html 4.0 tags 
syn keyword htmlTagName contained abbr acronym bdo button col label 
syn keyword htmlTagName contained colgroup del fieldset iframe ins legend 
syn keyword htmlTagName contained object optgroup q s tbody tfoot thead 

Estas líneas definen palabras clave de sintaxis. En este caso, definen específicamente nombres de etiquetas HTML. La primera línea le dice a Vim que coloree las etiquetas abbr, acronym, bdo, button, col y label. Se puede decir Vim para dar color a las etiquetas adicionales con la siguiente sintaxis:

" new html 5 tags 
syn keyword htmlTagName contained video canvas 

Vim ahora aportan color a video y canvas etiquetas y las palabras clave adicionales que se agregan.

Sin embargo, si actualiza el html.vim incorporado, se sobrescribirá la próxima vez que actualice Vim, por lo que la mejor práctica es agregar sus reglas a estas incorporadas. Para hacerlo, cree la ruta de la carpeta after/syntax en su carpeta .vim y coloque un html.vim en ella.

Hay una gran cantidad de elementos y argumentos de HTML 5 en este gist mencionados por @ user240515 a continuación. Pegue el contenido de esto en su recién creado html.vim.

Consulte :help html.vim para obtener más información.

+0

Gracias mikemike – unmounted

+0

@michaelmichael gracias, pero para mí no está funcionando, agregué las líneas que @johan dijo en su respuesta, pero no estoy resaltando en la etiqueta '

' por ejemplo ... Los permisos de las carpetas/archivo son los mismos que en los archivos de sintaxis regulares. Aquí tiene el contenido del archivo: http://pastebin.com/cp8qYDze – ziiweb

22

Gracias por esta pregunta, y gracias por la respuesta aceptada! Esta es una lista completa de las nuevas etiquetas para añadir para HTML 5, tal como se definen en el momento de la escritura:

" new html 5 tags 
syn keyword htmlTagName contained article aside audio canvas command datalist 
syn keyword htmlTagName contained details embed figcaption figure footer header 
syn keyword htmlTagName contained hgroup keygen mark meter nav output progress 
syn keyword htmlTagName contained rp rt ruby section source summary time video 
7

Sólo hay que poner el siguiente archivo en ~/.vim/sintaxis:

http://gist.github.com/390929

+5

Tuve problemas para hacerlo; en cambio le cambió el nombre a "html.vim" y ponerlo en .vim/después/sintaxis – mjhoy

10

estoy a punto de probar esto:

http://github.com/othree/html5.vim

parece bastante completa.

EDITAR: No veo nada acerca de la sangría. :(

EDITAR [23/12/2012]: I do :) Pero tal vez es más tarde se añadió: https://github.com/othree/html5.vim/tree/master/indent

+0

agradable, omnicomplete de enormes cantidades de HTML5 API de JavaScript de ("onMouseWheel", "ondragstart") – unmounted

+0

Una manera de instalarlo es: 'git clone https: // github.com/othree/html5.vim' luego vaya a ese directorio y ejecute: 'make install'. Instalará todos los archivos requeridos en su directorio ~/.vim. Tarda aproximadamente 1 segundo. – lepe

4

sangría puede ser apoyada mediante un método similar al descrito por michaelmichael para extender el archivo de sintaxis html.vim . Si aún no tiene html.vim en ~/.vim/indent, puede crearlo con el contenido encontrado here.Dentro del ~/.vim/indent/html.vim verá un conjunto de llamadas a funciones montaje de una lista de nombres de los elementos HTML que tiene el siguiente aspecto:

" [-- <ELEMENT ? - - ...> --] 
call <SID>HtmlIndentPush('a') 
call <SID>HtmlIndentPush('abbr') 
call <SID>HtmlIndentPush('acronym') 
call <SID>HtmlIndentPush('address') 
" ...and many more... 

Estas líneas están definiendo las etiquetas que activarán la sangría etiqueta básica. Extienda esta lista con cualquier etiqueta HTML5 que quiera que tenga sangría de gatillo. He añadido lo siguiente al final de esta lista:

" New HTML 5 elements 
call<SID>HtmlIndentPush('table') 
call<SID>HtmlIndentPush('article') 
call<SID>HtmlIndentPush('aside') 
call<SID>HtmlIndentPush('audio') 
call<SID>HtmlIndentPush('canvas') 
call<SID>HtmlIndentPush('command') 
call<SID>HtmlIndentPush('datalist') 
call<SID>HtmlIndentPush('details') 
call<SID>HtmlIndentPush('embed') 
call<SID>HtmlIndentPush('figcaption') 
call<SID>HtmlIndentPush('figure') 
call<SID>HtmlIndentPush('footer') 
call<SID>HtmlIndentPush('header') 
call<SID>HtmlIndentPush('hgroup') 
call<SID>HtmlIndentPush('keygen') 
call<SID>HtmlIndentPush('mark') 
call<SID>HtmlIndentPush('meter') 
call<SID>HtmlIndentPush('nav') 
call<SID>HtmlIndentPush('output') 
call<SID>HtmlIndentPush('progress') 
call<SID>HtmlIndentPush('rp') 
call<SID>HtmlIndentPush('rt') 
call<SID>HtmlIndentPush('ruby') 
call<SID>HtmlIndentPush('section') 
call<SID>HtmlIndentPush('source') 
call<SID>HtmlIndentPush('summary') 
call<SID>HtmlIndentPush('time') 
call<SID>HtmlIndentPush('video') 

sangría Ahora se desencadenó en las etiquetas HTML5 mencionadas anteriormente.

0

El archivo syntax/html.vim que viene con vim (8,0) es muy obsoleta. Una buena forma de mantener actualizado su resaltado de sintaxis es usar un complemento bien mantenido como vim-polygot que se mantiene mucho más actualizado. Es html.vim syntax soportes, canvas, video, section y main (que otras respuestas no son compatibles), para nombrar unos pocos.

Cuestiones relacionadas