Czy jest jakiś * dobry * tryb HTML dla emacsa?


23

Kocham emacs

i chcę w nim pracować,
ale nie mogę znaleźć sposobu na poprawną edycję HTML.

Mam na myśli, że to naprawdę okropne.

Będzie dobrze HTML, ale nie PHP, javascript itp.

Próbowałem uzyskać tryb HTML-pomocnika ... Pobrałem go, umieściłem w / usr / local / share / emacs / site-lisp i dodałem do mojego pliku .emacs:

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

skopiowane i wklejone z jakiejś strony (nie znam elisp).
po prostu nic nie wyróżnia.

Próbowałem pobrać całą masę trybów i użyć innego trybu, aby połączyć je ze sobą, ale bezskutecznie.

Emacs jest świetny pod każdym innym względem - dlaczego nie może wykonać prostego zadania edycji stron internetowych? To znaczy, jest to obecnie dość standardowa rzecz dla redaktorów.

Czy ktoś wie, jak to zrobić?

Odpowiedzi:


4

Czy sprawdziłeś stronę HTML Emacs Wiki ? Szczególnie przydatne jest nxhtml .


4
wygląda na użyteczne, ale jest bardzo bolesne w użyciu ... ładuje się powoli, nie wcina się prawidłowo, jest brzydki, działa wolno, podświetla wszystko na czerwono, a następnie zmienia kursywę i po prostu jest bolesny ...
Carson Myers

1
Z powodzeniem wykorzystałem nxhtml. Kolorami czcionek i kursywą można sterować, dostosowując twarze
Doug Harris,

35

Miałem ten sam problem co ty, więc postanowiłem napisać tryb sieciowy .

wprowadź opis zdjęcia tutaj

Web-mode.el jest głównym trybem dla Emacsa, przeznaczonym do edycji mieszanych szablonów stron internetowych (HTML z Java / JSP, PHP, CSS, JavaScript).

Nie opiera się na żadnym innym trybie. Wyróżnia składnię i wcięcia zgodnie z typem bloku kodu. Napisałem małą stronę HOWTO na

O

  • web-mode.el jest głównym trybem edycji szablonów internetowych (HTML z PHP, Java / JSP, JavaScript, style CSS).
  • web-mode.elnigdy nie będzie w pełni funkcjonalnym trybem PHP lub JS. (Nie zachęcamy do tworzenia wielowierszowych bloków kodu w szablonach!).

Funkcje natywne

  • inteligentne wcięcie (zgodnie z kontekstem: HTML, PHP, Java / JSP, JavaScript lub CSS)
  • nawigacja kodu: C-c C-nmiędzy otwieraniem i zamykaniem znacznika HTML lub między kontrolkami PHP> - jeśli ... else ... endif, for ... endfor
  • Automatyczne zamykanie znaczników HTML (po
  • podświetlanie składni (w zależności od rodzaju bloku)
  • wstawianie fragmentu kodu C-c C-i(automatyczne wcięcie, świadomy wyboru tekstu)
  • automatyczne wstawianie (np. ?>po <?php)

Idź powiedzieć, że to oszczędza mój dzień ... Dzięki @fxbois! Kocham to. Wreszcie mogę uzyskać wcięcie mieszania między HTML, CSS, Java, itp. Czy można to zrobić za pomocą Pythona?
swdev

@swdev, czy możesz otworzyć problem na githubie dotyczący tego żądania kompatybilności z Pythonem. Można wysłać link da do dokumentacji składni szablonu i przykład takiego szablonu.
fxbois

Wygląda schludnie, ale wydaje się, że używa wyrażenia regularnego do analizowania HTML, zamiast mieć prawdziwy parser, taki jak psgml ...
David N. Welton

3
Co rozumiesz przez prawdziwy parser? Przechodzę przez dokument, aby znaleźć tagi zaczynające się od <i kończące na> itd. Itd. Czy znalazłeś jakieś ograniczenie? Jeśli znajdziesz jakieś, nie wahaj się zgłosić problemów z repozytorium github
fxbois

3

Zostałem rozproszony z dostępnymi trybami, ale ostatnio znalazłem szczęście, używając zwykłego starego, html-modewzbogaconego o yasnippeti tidy.el. Jak wspomniano w innych odpowiedziach, tryb nxhtml jest użyteczny, jeśli piszesz xhtml.

Jeśli chcesz wyróżnić php i javascript, możesz spojrzeć na to mmm-mode, co pozwoli ci uruchomić wiele głównych trybów jednocześnie. Nigdy go nie używałem, więc nie wiem, kto obsługuje konfliktowe powiązania klawiszy itp., Więc musisz poczuć się jak tam.



0

Ja również używam trybu nXhtml do edycji w trybie mieszanym, ponieważ wiele trybów nie działa poprawnie. To była trochę trudna jazda, ale ostatnie wersje okazały się przydatne. Używam Emacs 23 FWIW.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.