2010-04-08 9 views
28

cuando estoy trabajando en un archivo PHP, por ejemplo, el tipo de archivo por defecto es PHP. Esto tiene sentido, sin embargo, cuando ese archivo PHP también tiene HTML, el tipo de archivo sigue siendo php. Para algunos complementos eso significa que obtengo la funcionalidad PHP para ese complemento, pero me pierdo la funcionalidad HTML. Una situación más específica donde esto sucede es con mi complemento de fragmentos. Recibo fragmentos de php y no html snippets cuando estoy editando un archivo php.múltiples tipos de archivo en vim

soluciones posibles a este (que, obviamente, no me gusta, por lo tanto, mi fijación a esta pregunta) son:

  1. añadir un mapa para alternar entre diferentes tipos de archivos cuando estoy editando diferentes secciones del archivo.
  2. actualización del archivo de mis fragmentos php para incluir los fragmentos de HTML, así (mientras que esto funcionaría para el ejemplo anterior, no resuelve el problema de fondo).

Entonces, ¿Hay alguna manera de editar un archivo usando múltiples tipos de archivos al mismo tiempo en vim?

Editar: Para futuras referencias, el complemento específico del que estoy hablando se llama snipMate. http://www.vim.org/scripts/script.php?script_id=2540

+0

Modo PHP en (g) VIM tiene soporte para cuatro idiomas en el mismo archivo: HTML, JavaScript (aunque no tan bien hecho como 'ft = javascript'), CSS y PHP. Detectará los límites de cada uno. El complemento fue escrito con programadores web en mente. – amphetamachine

+0

Obtengo el resaltado de sintaxis funcionando como se espera para los archivos en los que trabajo con diferentes idiomas en el mismo archivo, pero ¿qué ocurre con otros complementos? ¿Estás diciendo que ya deberían estar trabajando con (g) vim? No veo cómo podría ser esto. – chadgh

+0

No hay una manera completamente general. El complemento en cuestión debería ser reescrito de la misma manera que el archivo de sintaxis de PHP. Ambos son guiones vim; podría mirar el archivo de sintaxis y ver cómo detecta los límites, y luego tratar de aplicarlo. Sin embargo, es un problema difícil en general, porque no todo lo que hace un complemento está tan claramente delimitado como el resaltado de sintaxis. – Cascabel

Respuesta

41

Puede especificar el uso de múltiples tipos de archivos al mismo tiempo. Por ejemplo:

:setfiletype html.php 

Pero la mayoría de los tipos de archivos y archivos de sintaxis no están diseñados para estos casos. Véase también: help 'filetype'

+2

¡Perfecto! Para el complemento que me preocupaba principalmente, esto funcionó a la perfección. Editando un archivo PHP, escribo: setfiletype html.php.js.css y el complemento snippet incluye los archivos snippet para todos los tipos de archivos especificados. Gracias – chadgh

+0

Excelente. Tenía exactamente la misma pregunta con respecto a snipMate – devth

+0

. Claramente no sé nada de programación. ¡Gracias! para hacer eso mejor – Prospero

Cuestiones relacionadas