Comencé los dolorosos primeros pasos de usar emacs para editar un archivo HTML con etiquetas HTML y contenido javascript. Instalé nxhtml e intenté usarlo, es decir, lo configuré para usar nxhtml-mumamo-mode para archivos .html. Pero no me encanta. Cuando estoy editando la parte de Javascript del código, las sangrías de tabulación no se comportan como lo hacen cuando edito código C / C ++. Comienza a colocar pestañas dentro de la línea y si intenta presionar la pestaña en el espacio en blanco que precede a una línea, inserta la pestaña en lugar de volver a tabular la línea.
Otro aspecto que no me gusta es que no se colorea la sintaxis como lo hacen los modos habituales de C / C ++. Prefiero el comportamiento del modo java predeterminado al editar archivos HTML, pero eso no funciona bien con el código HTML. :-(
1) ¿Existe un modo mejor para editar archivos HTML con partes de Javascript?
2) ¿Hay alguna manera de hacer que nxhtml use el modo java predeterminado para las partes de javascript?
Saludos,
METRO
fuente
<script src>
. Puedes verlos a ambos con un poco deC-x 2
oC-x 3
y tener un modo para cada uno. : - /Respuestas:
Otra solucion es
multi-web-mode
:https://github.com/fgallina/multi-web-mode
que puede ser más fácilmente configurable que el ya mencionado
multi-mode
.Simplemente configure sus modos preferidos en su
.emacs
archivo de esta manera:Más sobre los múltiples modos múltiples de Emacs (suspiro) aquí:
http://www.emacswiki.org/emacs/MultipleModes
ACTUALIZACIÓN: simplificó las expresiones regulares para detectar áreas de JavaScript o CSS para que funcionen con HTML5, sin necesidad de expresiones regulares frágiles y súper precisas.
fuente
(js-mode "<script[^>]*>" "</script>") (css-mode "<style[^>]*>" "</style>")
He escrito el modo principal web-mode.el para este tipo de uso: editar plantillas HTML que incorporan JS, CSS, Java (JSP), PHP. Puede descargarlo en http://web-mode.org. Web-mode.el resalta la sintaxis y la sangría según el tipo de bloque. La instalación es sencilla:
fuente
Gran pregunta. ¡Mira cuántos votos a favor obtuviste en tu primero!
Todos tienen la misma experiencia que tú. Yo también.
En lugar de confiar en nhtml-mode, que exhibió el mismo tipo de extrañeza para mí como lo describiste, busqué otra opción y encontré multi-mode.el . Es una especie de esqueleto multimodo de propósito general. Para usarlo, debe especificar expresiones regulares para describir dónde comienza un modo y dónde termina otro. Entonces, busca
<script...>
iniciar un bloque de javascript y<style...>
comenzar un bloque de CSS. Luego, conecta sus propios modos para cada bloque; si le gusta espresso para javascript, úselo. Y así sucesivamente para las otras expresiones regulares que identifican otros bloques.En la práctica, mientras navega por el documento, se habilita un modo diferente para cada bloque.
Usé multimodo para producir un ASP.NET, que me permite editar C #, HTML, CSS y Javascript en un solo archivo, con el resaltado y la fuente adecuados dependiendo de dónde esté el cursor en el búfer. No es perfecto, pero encontré que es una mejora notable en las posibilidades existentes. De hecho, esto puede ser lo que quieras. Pruébalo.
https://code.google.com/p/csharpmode/source/browse/trunk/aspx-mode.el?r=14
fuente
No es realmente una buena solución, pero una solución rápida si realmente necesita tener javascript en su html es seleccionar la región que contiene javascript y usar el comando
narrow-to-region
(C-x n n
) y luego cambiar a su modo de javascript preferido. El comandowiden
te trae de vuelta, (C-x n w
).fuente
Parece que ha configurado su nxhtml incorrectamente. La única configuración necesaria debería ser cargar el
autostart.el
archivo, y luego todo debería funcionar a algún nivel. nxhtml no es perfecto de ninguna manera, pero mi experiencia al usarlo para html / css / javascript / mako es bastante buena, al menos para todo menos para mako. Pero estoy bastante seguro de que me equivoqué con la parte del mako.Así es como inicializo mi nxhtml:
fuente