Gibt es einen * guten * HTML-Modus für Emacs?

12124
Carson Myers

Ich liebe emacs,

und ich möchte meine Web-Programmierarbeit darin erledigen,
aber ich finde keinen Weg, HTML-Code richtig zu bearbeiten.

Ich meine, es ist wirklich schrecklich.

Es wird HTML gut tun, aber kein PHP, Javascript usw.

Ich habe versucht, den HTML-Helper-Modus zu bekommen ... Ich habe ihn heruntergeladen, in / usr / local / share / emacs / site-lisp abgelegt und meiner .emacs-Datei hinzugefügt:

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

kopiert und von einer Site eingefügt (ich weiß nicht, elisp).
es wird nichts hervorgehoben.

Ich habe versucht, eine ganze Reihe von Modi herunterzuladen und sie mit einem anderen Modus aneinander zu reihen, ohne Erfolg.

Emacs ist in jeder Hinsicht so großartig - warum kann man es nicht so einfach machen, Webseiten zu bearbeiten? Ich meine, für Redakteure ist es heutzutage eine ziemlich normale Sache.

Weiß jemand, wie das geht?

23

5 Antworten auf die Frage

34
fxbois

I had the same problem as you so I decided to write web-mode.

enter image description here

Web-mode.el is a major mode for Emacs that is intended for editing mixed web templaces (HTML with Java/JSP, PHP, CSS, JavaScript).

It doesn't rely on any other mode. It does syntax highlight et indenting according to the code block type. I've written a little HOWTO page on

About

  • web-mode.el is a major-mode for editing web templates (HTML with PHP, Java/JSP, JavaScripts, CSS styles).
  • web-mode.el is will never be a full featured PHP or JS mode. (We don’t encourage multi-lines blocs of code in templates !).

Native Features

  • smart indentation (according to the context : HTML, PHP, Java/JSP, JavaScript or CSS)
  • code navigation : C-c C-n between opening and closing HTML tag or between PHP controls > - if ... else ... endif, for ... endfor
  • HTML tag autoclosing (after
  • syntax highlighting (according to the type of bloc)
  • snippet insertion C-c C-i (auto indented, aware of text selection)
  • auto-inserts (ex. ?> after <?php)
Sag mal, es rettet meinen Tag ... Danke @fxbois! Ich liebe es. Schließlich kann ich die Einrückung der Mischung zwischen HTML, CSS, Java usw. erhalten. Kann es mit Python gemacht werden? swdev vor 10 Jahren 0
@swdev könnten Sie auf github ein Problem bezüglich dieser Anforderung der Python-Kompatibilität eröffnen. Könnte einen Link zur Vorlagen-Syntaxdokumentation und ein Beispiel für eine solche Vorlage senden. fxbois vor 10 Jahren 0
Sieht ordentlich aus, scheint jedoch regexp für die Analyse von HTML zu verwenden, anstatt einen echten Parser wie psgml zu haben. David N. Welton vor 10 Jahren 0
What do you mean by real parser ? I traverse the document to find tags that begin with < and end with > etc etc .. Have you find any limitation ? If you find any, do not hesitate to report issues on the github repo fxbois vor 10 Jahren 3
4
luapyad

Haben Sie die HTML- Seite von Emacs Wiki besucht ? Insbesondere nxhtml sieht nützlich aus.

es scheint nützlich zu sein, aber es ist sehr schmerzhaft zu benutzen ... es lädt langsam, rastet nicht richtig ein, ist hässlich, läuft langsam, markiert alles rot und macht es dann alles kursiv und nur schmerzhaft ... Carson Myers vor 14 Jahren 4
Ich habe nxhtml mit Erfolg verwendet. Schriftfarben und Kursivschrift lassen sich durch Anpassen der Gesichter steuern Doug Harris vor 14 Jahren 1
3
Pinochle

Ich war mit den verfügbaren Modi unzufrieden, aber ich habe vor kurzem Glück gefunden, wenn ich einfach alt und html-modemit yasnippetund erweitert habe tidy.el. Wie bereits in den anderen Antworten erwähnt, ist der nxhtml-Modus hilfreich, wenn Sie xhtml schreiben.

Wenn Sie hervorgehobene PHP und Javascript erhalten möchten, möchten Sie vielleicht einen Blick darauf werfen mmm-mode, wodurch Sie mehrere Hauptmodi gleichzeitig ausführen können. Ich habe es noch nie benutzt, daher weiß ich nicht, mit wem es in Konflikt stehende Schlüsselbindungen usw. handhabt. Daher müssen Sie sich dort wohlfühlen.

3
skwee rell

Probieren Sie den Multi-Web-Modus aus . Er ist ein untergeordneter Modus, der für die Web-Bearbeitung konzipiert wurde. Er wählt den richtigen Major aus, wenn sich der Punkt bewegt.

0
stsquad

Ich verwende auch den nXhtml-Modus für die Bearbeitung im gemischten Modus, da mehrere Modi nicht ordnungsgemäß funktionieren konnten. Es war ein bisschen steinig, aber die letzten Builds haben sich als nützlich erwiesen. Ich fahre mit Emacs 23 FWIW.