¿Hay algún modo HTML * bueno * para emacs?

23

Me encanta emacs

y quiero hacer mi trabajo de programación web en él,
pero no puedo encontrar una manera de editar HTML correctamente.

Quiero decir que es realmente horrible.

Hará bien HTML, pero no PHP, javascript, etc.

Intenté obtener html-helper-mode ... Lo descargué, lo puse en / usr / local / share / emacs / site-lisp, y lo agregué a mi archivo .emacs:

(autoload 'html-helper-mode "html-helper-mode" "Yay HTML" t)
  (setq auto-mode-alist (cons '("\\.html$" . html-helper-mode) auto-mode-alist))

copiado y pegado de algún sitio (no sé elisp).
simplemente, no resalta nada en absoluto.

Intenté descargar una gran cantidad de modos y usar algún otro modo para unirlos, sin éxito.

Emacs es tan bueno en todos los sentidos: ¿por qué no puede hacer la simple tarea de editar páginas web? Quiero decir, es algo bastante normal para los editores en estos días.

Entonces, ¿alguien sabe cómo hacer esto?

Carson Myers
fuente

Respuestas:

4

¿Has visitado la página html de Emacs Wiki ? nxhtml en particular parece útil.

luapyad
fuente
44
parece útil pero es muy doloroso de usar ... se carga lentamente, no se sangra correctamente, es feo, corre lento, resalta todo en rojo y luego lo pone todo en cursiva y solo, es doloroso ...
Carson Myers
1
He usado nxhtml con éxito. Los colores de fuente y la cursiva son controlables mediante la personalización de las caras
Doug Harris
35

Tuve el mismo problema que tú, así que decidí escribir en modo web .

ingrese la descripción de la imagen aquí

Web-mode.el es un modo principal para Emacs que está diseñado para editar plantillas web mixtas (HTML con Java / JSP, PHP, CSS, JavaScript).

No se basa en ningún otro modo. Hace resaltar la sintaxis y la sangría de acuerdo con el tipo de bloque de código. He escrito una pequeña página de CÓMO en

Acerca de

  • web-mode.el es un modo principal para editar plantillas web (HTML con PHP, Java / JSP, JavaScripts, estilos CSS).
  • web-mode.elEste nunca será un modo PHP o JS con todas las funciones. (¡No recomendamos bloques de código de varias líneas en las plantillas!).

Características nativas

  • sangría inteligente (según el contexto: HTML, PHP, Java / JSP, JavaScript o CSS)
  • código de navegación: C-c C-n entre abrir y cerrar etiquetas HTML o entre controles PHP> - if ... else ... endif, for ... endfor
  • Cierre automático de etiquetas HTML (después de
  • resaltado de sintaxis (según el tipo de bloque)
  • inserción de fragmentos C-c C-i(sangría automática, consciente de la selección de texto)
  • inserciones automáticas (ej. ?>después <?php)
fxbois
fuente
Ve a decir, me salva el día ... ¡Gracias @fxbois! Me encanta. Finalmente puedo obtener la sangría de la mezcla entre html, css, java, etc. ¿Se puede hacer con Python?
swdev
@swdev, ¿podría abrir un problema en github sobre esta solicitud de compatibilidad con python? Podría enviar un enlace a la documentación de sintaxis de la plantilla y un ejemplo de dicha plantilla.
fxbois
Parece ordenado, pero parece usar regexp para analizar HTML, en lugar de tener un analizador real como psgml ...
David N. Welton
3
¿Qué quieres decir con analizador real? Recorro el documento para encontrar etiquetas que comienzan con <y terminan con> etc., etc. ¿Ha encontrado alguna limitación? Si encuentra alguno, no dude en informar problemas en el repositorio de
github
3

He quedado insatisfecho con los modos disponibles, pero recientemente encontré la felicidad con el viejo y simple html-modeaumentado con yasnippety tidy.el. Como las otras respuestas han mencionado, el modo nxhtml es útil si está escribiendo xhtml.

Si desea obtener php y javascript resaltados, es posible que desee mirar mmm-mode, lo que le permitirá ejecutar múltiples modos principales a la vez. Nunca lo he usado, así que no sé quién maneja las combinaciones de teclas en conflicto, etc., por lo que tendrá que orientarse por allí.

Pinochle
fuente
3

Dar el modo multi-web una oportunidad, que es un modo menor diseñado con la edición de páginas web en cuenta, selecciona la principal apropiado cuando el punto se mueve alrededor.

Skwee Rell
fuente
0

Yo también uso el modo nXhtml para la edición en modo mixto, ya que no he logrado que Modos múltiples funcionen correctamente. Ha sido un poco difícil, pero las construcciones recientes han demostrado ser útiles. Estoy corriendo con Emacs 23 FWIW.

stsquad
fuente