emacs 是否有任何*好的* HTML 模式?

Car*_*ers 24 html javascript emacs php syntax-highlighting

我爱 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))
Run Code Online (Sandbox Code Playgroud)

从某个站点复制和粘贴(我不知道 elisp)。
它只是,根本没有突出任何内容。

我尝试下载一大堆模式并使用其他模式将它们串在一起,但无济于事。

Emacs 在其他方面都很棒——为什么它不能完成编辑网页的简单任务?我的意思是,如今对于编辑来说,这是一件非常标准的事情。

那么,有谁知道如何做到这一点?

fxb*_*ois 39

我和你有同样的问题,所以我决定写web-mode

在此处输入图片说明

Web-mode.el 是 Emacs 的主要模式,用于编辑混合 Web 模板(带有 Java/JSP、PHP、CSS、JavaScript 的 HTML)。

它不依赖于任何其他模式。它根据代码块类型进行语法高亮和缩进。我在上面写了一个小小的 HOWTO 页面

关于

  • web-mode.el 是用于编辑 Web 模板(带有 PHP、Java/JSP、JavaScript、CSS 样式的 HTML)的主要模式。
  • 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(自动缩进,知道文本选择)
  • 自动插入(例如?>after <?php

  • 真正的解析器是什么意思?我遍历文档以查找以 &lt; 开头并以 &gt; 结尾的标签等等。你有没有发现任何限制?如果您发现任何问题,请不要犹豫在 github repo 上报告问题 (3认同)

lua*_*yad 5

您是否查看过Emacs Wiki html页面?特别是nxhtml看起来很有用。

  • 它看起来很有用,但使用起来非常痛苦......它加载缓慢,缩进不正确,丑陋,运行缓慢,突出显示所有红色,然后将其全部斜体和公正,很痛苦...... (4认同)

Pin*_*hle 5

我对可用的模式不满意,但最近我发现使用普通的旧html-mode增强版yasnippet和感到高兴tidy.el。正如其他答案提到的,如果您正在编写 xhtml,nxhtml 模式很有用。

如果您想突出显示 php 和 javascript,您可能需要查看mmm-mode,它将允许您同时运行多个主要模式。我从未使用过它,所以我不知道它是谁处理冲突的键绑定等......所以你必须在那里摸索。