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

23

Ich liebe Emacs,

und ich möchte meine Web-Programmierarbeit darin erledigen,
aber ich kann keinen Weg finden, damit HTML richtig bearbeitet wird.

Ich meine, es ist ernsthaft schrecklich.

Es wird HTML gut tun, aber nicht PHP, Javascript, etc.

Ich habe versucht, den HTML-Hilfemodus aufzurufen ... Ich habe ihn heruntergeladen, in / usr / local / share / emacs / site-lisp abgelegt und ihn 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 hebt einfach gar nichts hervor.

Ich habe versucht, eine ganze Reihe von Modi herunterzuladen und in einem anderen Modus zu kombinieren, ohne Erfolg.

Emacs ist in jeder Hinsicht so großartig - warum kann es die einfache Aufgabe, Webseiten zu bearbeiten, nicht erfüllen? Ich meine, es ist heutzutage ein ziemlich normaler Vorgang für Redakteure.

Weiß jemand, wie man das macht?

Carson Myers
quelle

Antworten:

4

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

luapyad
quelle
4
es sieht nützlich aus, ist aber sehr schmerzhaft zu verwenden ... es wird langsam geladen, rückt nicht richtig ein, ist hässlich, läuft langsam, hebt alles rot hervor und macht es dann kursiv und ist einfach schmerzhaft ...
Carson Myers
1
Ich habe Nxhtml mit Erfolg verwendet. Schriftfarben und Kursivschrift können durch Anpassen der Gesichter gesteuert werden
Doug Harris
35

Ich hatte das gleiche Problem wie Sie, also habe ich beschlossen, den Web-Modus zu schreiben .

Bildbeschreibung hier eingeben

Web-mode.el ist ein Hauptmodus für Emacs, der zum Bearbeiten gemischter Web-Templaces (HTML mit Java / JSP, PHP, CSS, JavaScript) vorgesehen ist.

Es ist nicht auf einen anderen Modus angewiesen. Die Syntax wird entsprechend dem Codeblocktyp hervorgehoben und eingerückt. Ich habe eine kleine HOWTO-Seite über geschrieben

Über

  • web-mode.el ist ein Hauptmodus zum Bearbeiten von Web-Templates (HTML mit PHP, Java / JSP, JavaScripts, CSS-Stilen).
  • web-mode.elDies wird niemals ein voll ausgestatteter PHP- oder JS-Modus sein. (Wir empfehlen keine mehrzeiligen Codeblöcke in Vorlagen!)

Native Funktionen

  • Smart Indentation (je nach Kontext: HTML, PHP, Java / JSP, JavaScript oder CSS)
  • Code-Navigation: C-c C-nzwischen dem Öffnen und Schließen von HTML-Tags oder zwischen PHP-Steuerelementen> - if ... else ... endif, for ... endfor
  • Automatische Schließung von HTML - Tags (nach
  • Syntaxhervorhebung (je nach Blocktyp)
  • Snippet-Einfügung C-c C-i(automatisch eingerückt, Textauswahl wird berücksichtigt)
  • Auto-Inserts (ex. ?>nachher <?php)
fxbois
quelle
Gehen Sie zu sagen, es rettet meinen Tag ... Danke @fxbois! Ich liebe es. Endlich kann ich die Einrückung der Mischung zwischen HTML, CSS, Java, etc. bekommen. Kann es mit Python gemacht werden?
Swdev
@swdev könnten Sie ein Problem auf Github über diese Anforderung der Python-Kompatibilität eröffnen. Könnte einen Link zur Dokumentation der Vorlagensyntax und ein Beispiel für eine solche Vorlage senden.
FXBOIS
Sieht ordentlich aus, scheint aber Regexp zum Parsen von HTML zu verwenden, anstatt einen echten Parser wie psgml zu haben ...
David N. Welton
3
Was meinst du mit echtem Parser? Ich durchsuche das Dokument, um Tags zu finden, die mit <beginnen und mit> usw. enden. Haben Sie Einschränkungen festgestellt? Wenn Sie welche finden, zögern Sie nicht, Probleme mit dem Github Repo
FXBOIS
3

Ich bin mit den verfügbaren Modi unzufrieden, aber ich habe in letzter Zeit Glück gefunden, indem ich einfaches Altes html-modemit yasnippetund ergänzt habe tidy.el. Wie die anderen Antworten bereits erwähnt haben, ist der nxhtml-Modus nützlich, wenn Sie xhtml schreiben.

Wenn Sie PHP und Javascript hervorheben möchten, sollten Sie nachsehen mmm-mode, wodurch Sie mehrere Hauptmodi gleichzeitig ausführen können. Ich habe es nie benutzt, deshalb weiß ich nicht, wer mit widersprüchlichen Tastenkombinationen umgeht, usw. Sie müssen sich also dort zurechtfinden.

Binokel
quelle
3

Probieren Sie es mit dem Multi-Web-Modus aus. Es handelt sich um einen Nebenmodus, der speziell für die Web-Bearbeitung entwickelt wurde. Er wählt den entsprechenden Hauptmodus aus, wenn sich der Punkt bewegt.

Skwee Rell
quelle
0

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

Stsquad
quelle