Какой режим люди используют при использовании Emacs для редактирования веб-страниц, содержащих CSS, javascript и HTML?

обычно код выглядит примерно так:

<html>
  <head>
    <style type="text/css">
       body { font-size:12pt; font-family: Arial;}
        ....
    </style>
    <script type="text/javascript" src="jquery.1.3.2js"></script>
    <script type="text/javascript">
    <!--
        $(document).ready(function(){
          ...
        });
        ...
    -->
    </script>
    <meta ... />
  </head>
  <body>
    <div>
      <p>
       ....
      </p>
      ...
    </div>
    ....
  </body>
</html>

Мне нравится javascript-режим для подсветки синтаксиса и отступов. Аналогично для sgml-режима для HTML. Также я получаю автозаполнение открытых тегов. Css-режим не так важен, поэтому он не настолько приоритет.

Это 3 разных языка и 3 режима. Прямо сейчас, когда я редактирую разные разделы, я меняю режим вручную. Это работает, вроде.

Кто-нибудь получил лучший подход?

Ответ 2

С тех пор, как web-mode появился, я избавился от mumamo и nxhtml. веб-режим проще в использовании и установке. Для начала он использует различную подсветку синтаксиса и отступы смешанного файла js/html/css. Но для меня очень удобная вещь в том, что она работает на других языках шаблонов. Вот пример конфигурации с их сайта:

(require 'web-mode)
(add-to-list 'auto-mode-alist '("\\.phtml\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.tpl\\.php\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.jsp\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.as[cp]x\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.erb\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.mustache\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.djhtml\\'" . web-mode))

Ответ 3

Я использую nXhtml для emacs. Цитата из страницы

Одной из основных частей nXhtml является nxhtml-режим, основной режим GNU Emacs, который основывается на nxml-режиме. Он знает о синтаксисе XHTML и может проверить это при вводе. Он также может рассказать вам, какие теги и атрибуты вы можете использовать в определенный момент и помочь вам вставить их.

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

Ответ 4

Мне было бы жалко называть мой подход лучше, но fwiw, я избегаю такой ситуации, как чума, помещая CSS в файлы .css и javascript в .js файлы, а затем помещаю теги "include" в html файл. Затем Emacs обрабатывает все красиво. По общему признанию, имея три больших монитора с полноэкранным Emacs, каждый из них создает боковые буферы, содержащие файлы, которые мне практически не нужны. -:) И это не очень хорошо работает в корпоративной среде, где я не контролирую то, что другие инженеры предпочитают делать.

Ответ 5

Для сравнения, вот некоторые из доступных режимов, начиная с 2014-07-04:

| library        | files | size    | last update | url                                                 |
|----------------+-------+---------+-------------+-----------------------------------------------------|
| web-mode       |     1 |  279 kb |  2014-07-03 | https://github.com/fxbois/web-mode                  |
| polymode       |     7 |  120 kb |  2014-06-14 | https://github.com/vitoshka/polymode                |
| mmm-mode       |    17 |  185 kb |  2014-02-12 | https://github.com/purcell/mmm-mode                 |
| multi-web-mode |     1 |   16 kb |  2013-08-23 | https://github.com/fgallina/multi-web-mode          |
| mumamo         |   115 | 3090 kb |  2010-04-25 | http://ourcomments.org/Emacs/nXhtml/doc/nxhtml.html |
| multi-mode     |     1 |   23 kb |        2009 | http://www.loveshack.ukfsn.org/emacs/multi-mode.el  |

Также добавлен в Emacs Wiki: http://www.emacswiki.org/emacs/MultipleModes

Ответ 6

Мульти-веб-режим является относительно новым и активно обновляется, захватывает его от elpa (package.el)

Вы можете увидеть источник и документы здесь https://github.com/fgallina/multi-web-mode