2012-07-26 5 views
48

Estoy trabajando en un proyecto Symfony2 que usa Twig, y los tipos de archivos son myfile.html.twig. Vim no detecta automáticamente el resaltado de sintaxis y, por lo tanto, no aplica ninguno. Puedo usar :set syntax=HTML después de abrir el archivo, pero esto es un problema al saltar de un archivo a otro.vim: persistente: ¿establecer la sintaxis para un tipo de archivo dado?

¿Hay alguna manera de establecer persistentemente el resaltado de sintaxis para un tipo de archivo específico en vim?

Respuesta

71

Puede utilizar autocmd a lograr eso, es decir .:

autocmd BufNewFile,BufRead *.html.twig set syntax=html 

debería funcionar.

+2

Un amigo simplemente me señaló esto también. Establezca el tipo de archivo: 'au BufRead, BufNewFile * .html.twig set filetype = twig' Establezca la sintaxis:' au BufRead, BufNewFile * .html.twig set syntax = HTML' – Bendihossan

+14

Sugeriría poner esta línea en '~/.vim/ftdetect/html.twig.vim' file (debe crearlo), que es el lugar correcto para tales autocommands. – xaizek

+0

@xaizek Entiendo que esto es recomendable, pero ¿tiene alguna idea de por qué no funciona si pongo '~/.vimrc' en lugar de' ~/.vim/ftdetect/'? –

6
au BufNewFile,BufRead,BufReadPost *.twig set syntax=HTML 

Y añada esta línea al ~/.vimrc para hacer que la configuración sea persistente.

1

Sé que esto no responde directamente a la pregunta, sin embargo esto responde a la intención de la pregunta, que es conseguir el resaltado de sintaxis trabajar con la ramita/Symfony 2

le sugiero que echa un vistazo a https://github.com/beyondwords/vim-twig (no la mía) , que dispone lo siguiente:

  • la sintaxis del archivo con colores a * .html.twig,
  • archivo de detección de tipo de mismo, y
  • tipo de archivo plugin, lo que le permite modificar diversos ajustes a su conveniencia cuando edición de archivos * .html.twig

espero que esto ayuda a

16

Añadir una de las siguientes líneas a su .vimrc

" Set the type for the file type and override if file type 
" already has detected 
au BufRead,BufNewFile *.html.twig set filetype=html 

O

" Set the type for the file type but do NOT override if file type 
" already has detected 
au BufRead,BufNewFile *.html.twig setfiletype=html 
+1

Esta es una respuesta genérica mejor que la aceptada.Si vim no puede detectar el tipo de archivo (y proporciona automáticamente resaltado de sintaxis), es mejor configurar el tipo de archivo en lugar de solo la sintaxis del archivo. – mrfred

+1

'setfiletype' debe ser' set filetype' Al menos así es como podría hacerlo funcionar –

0

Es el caso más simple. Usualmente pueden ser funciones sofisticadas para determinar la sintaxis. Desafortunadamente, pueden funcionar incorrectamente. Si tiene un caso simple cuando el algoritmo da error yum necesita excluir la extensión de uno y escribir por separado para este caso. Por ejemplo, siempre obtengo la sintaxis vmasm para archivos mac. Así que de hecho es un archivo de macros de GNU Assembler puro. Y entonces necesito cambiar la sintaxis manualmente por comando: configure syntax = asm cada vez después de abrir este archivo para editarlo. Pero después del procedimiento hecho, la definición de sintaxis es correcta.

Cuestiones relacionadas