¿Cómo hacer un archivo con la extensión .pt, con la resaltura de sintaxis XML y el complemento de Vim SnipMate Load Pt.snippets?

StackOverflow https://stackoverflow.com/questions/2999980

Pregunta

Tengo lo siguiente en mi .vimrc:

au BufNewFile,BufRead *.pt set filetype=xml

Esto es necesario porque aunque estoy editando un archivo con *.pt Extensión, de hecho, es un archivo XML válido: configurar el tipo de archivo como este, puedo tener una resaltación de sintaxis.

Estoy usando complemento de snipmate de Vim, e intenté crear pt.snippets a necesidades específicas ya que estos archivos son plantillas de página de Zope (ZPT con TAL).

Ahora, tengo un problema: no quiero crear estos fragmentos en xml.snippets, ya que no son realmente genéricos de los fragmentos XML, sino mis *.pt Los archivos están configurados en XML, por lo que cuando defino mis fragmentos PT no están cargados a menos que ejecute :set filetype=pt en mi archivo PT en VIM, pero luego pierdo la resaltación de sintaxis.

Me gustaría poder tener un archivo PT, con resaltado de sintaxis XML, para poder cargar un archivo PT.Snippets de SnipMate. ¿Cómo puedo hacerlo?

(Me gustaría evitar poner mis fragmentos en un archivo de fragmento genérico, me gustaría que estuviera presente solo en Pt.Snippets para que sean más fáciles de mantener).

¿Fue útil?

Solución

SnipMate permite la sintaxis de 'filete de filete' punteada, intente:

au bufnewfile, bufread *.pt set filetype = xml.pt

Otros consejos

La sintaxis es notoriamente finamente fina por no querer apoyar dos filetipos concurrentes (en realidad, alguien hizo esta misma pregunta ayer)

au BufRead *.pt set filetype=xml.pt
au BufNewFile *.pt set filetype=xml.pt

La respuesta de Jinfield es en realidad acertada, pero he tenido la falla de comases-syntax en algunas versiones de Vim

¿Qué tal si?:

autocmd BufNewFile,BufRead *.pt setlocal filetype=pt
autocmd BufNewFile,BufRead *.pt setlocal syntax=xml
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top