Есть ли * хороший * HTML-режим для emacs?

23

Я люблю Emacs,

и я хочу сделать в нем свою работу по веб-программированию,
но я не могу найти способ заставить его правильно редактировать HTML.

Я имею в виду, что это серьезно ужасно.

Это будет хорошо работать с HTML, но не PHP, JavaScript и т. Д.

Я попытался получить html-helper-mode ... Я скачал его, поместил в / usr / local / share / emacs / site-lisp и добавил в мой файл .emacs:

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

скопировано и вставлено с какого-либо сайта (я не знаю, elisp).
это просто, ничего не выдвигает на первый план.

Я пытался загрузить целую кучу режимов и использовать какой-то другой режим, чтобы связать их вместе, но безрезультатно.

Emacs настолько хорош во всех отношениях - почему он не может выполнить простую задачу редактирования веб-страниц? Я имею в виду, это довольно стандартная вещь для редакторов в наши дни.

Итак, кто-нибудь знает, как это сделать?

Карсон Майерс
источник

Ответы:

4

Вы проверили Emacs Wiki HTML- страницу? NXHTML, в частности, выглядит полезным.

luapyad
источник
4
это выглядит полезным, но очень болезненно в использовании ... загружается медленно, не делает отступ правильно, уродливо, работает медленно, выделяет все красным, а затем делает все курсивом и просто, больно ...
Карсон Майерс
1
Я использовал nxhtml с успехом. Все цвета шрифта и курсив можно контролировать, настраивая лица
Даг Харрис
35

У меня была такая же проблема, как и у вас, поэтому я решил написать веб-режим .

введите описание изображения здесь

Web-mode.el - это основной режим для Emacs, предназначенный для редактирования смешанных веб-шаблонов (HTML с Java / JSP, PHP, CSS, JavaScript).

Это не зависит от любого другого режима. Это делает подсветку синтаксиса и отступ в соответствии с типом блока кода. Я написал небольшую страницу HOWTO на

Около

  • web-mode.el является основным режимом для редактирования веб-шаблонов (HTML с PHP, Java / JSP, JavaScripts, CSS-стили).
  • web-mode.elникогда не будет полнофункциональным режимом PHP или JS. (Мы не поддерживаем многострочные блоки кода в шаблонах!).

Родные Особенности

  • интеллектуальные отступы (в зависимости от контекста: HTML, PHP, Java / JSP, JavaScript или CSS)
  • навигация по коду: C-c C-nмежду открывающим и закрывающим тегом HTML или между элементами управления PHP> - if ... else ... endif, for ... endfor
  • Автозаполнение HTML-тега (после
  • подсветка синтаксиса (в зависимости от типа блока)
  • вставка фрагмента C-c C-i(с автоматическим отступом, в курсе выбора текста)
  • авто-вставки (напр. ?>после <?php)
fxbois
источник
Иди, скажи, это спасает мой день ... Спасибо @fxbois! Я люблю это. Наконец, я могу получить отступ смеси между html, css, java и т. Д. Можно ли это сделать с помощью Python?
swdev
@swdev не могли бы вы открыть на github вопрос об этом запросе совместимости с python. Могли бы отправить ссылку на документацию по синтаксису шаблона и пример такого шаблона.
fxbois
Выглядит аккуратно, но, кажется, использует regexp для анализа HTML, вместо того, чтобы иметь настоящий парсер, такой как psgml ...
David N. Welton
3
Что вы подразумеваете под реальным парсером? Я просматриваю документ, чтобы найти теги, которые начинаются с <и заканчиваются> и т. Д. И т. Д. Нашли ли вы какие-либо ограничения? Если вы обнаружите что-либо, не стесняйтесь сообщать о проблемах на
репозитории
3

Я был недоволен доступными режимами, но недавно нашел счастье, используя обычный старый, html-modeдополненный yasnippetи tidy.el. Как уже упоминалось в других ответах, режим nxhtml полезен, если вы пишете xhtml.

Если вы хотите получить выделенный php и javascript, вы можете посмотреть mmm-mode, что позволит вам запускать несколько основных режимов одновременно. Я никогда не использовал его, поэтому я не знаю, кто обрабатывает конфликтующие сочетания клавиш и т. Д., Так что вам придется почувствовать, как это происходит.

карточная игра, напоминающая безик
источник
3

Дайте несколько режиме Интернет попробовать, это режим второстепенный разработан с веб - редактирования в виду, он выбирает соответствующий основной , когда точка движется вокруг.

Skwee Rell
источник
0

Я также использую режим nXhtml для редактирования в смешанном режиме, так как не удалось заставить несколько режимов работать правильно. Это было немного тяжело, но последние сборки оказались полезными. Я бегу с Emacs 23 FWIW.

stsquad
источник