我已经开始了使用emacs编辑同时包含HTML标签和javascript内容的HTML文件的痛苦的第一步。我已经安装了nxhtml并尝试使用它-即设置为对.html文件使用nxhtml-mumamo-mode。但我并不喜欢它。当我编辑代码的Javascript部分时,制表符缩进的行为与编辑C/C++代码时不同。它开始在行中放置制表符,如果您尝试在一行之前的空白处按Tab键,它会插入制表符,而不是重新对该行进行制表。
我不喜欢的另一个方面是它不像通常的C/C++模式那样进行语法着色。在编辑HTML文件时,我更喜欢默认java模式的行为,但这在HTML代码中不能很好地发挥作用。:-(
1)有没有更好的模式来编辑带有Javascript部分的HTML文件?
2)有没有办法让nxhtml对javascript部分使用默认的java模式?
致以敬意,
我
发布于 2012-08-11 08:31:32
另一种解决方案是multi-web-mode
https://github.com/fgallina/multi-web-mode
其可能比已经提到的multi-mode
更容易配置。
您只需在.emacs
文件中配置首选模式,如下所示:
(require 'multi-web-mode)
(setq mweb-default-major-mode 'html-mode)
(setq mweb-tags
'((php-mode "<\\?php\\|<\\? \\|<\\?=" "\\?>")
(js-mode "<script[^>]*>" "</script>")
(css-mode "<style[^>]*>" "</style>")))
(setq mweb-filename-extensions '("php" "htm" "html" "ctp" "phtml" "php4" "php5"))
(multi-web-global-mode 1)
更多关于Emacs的多模式(叹息)在这里:
http://www.emacswiki.org/emacs/MultipleModes
更新:简化了检测JavaScript或CSS区域的正则表达式,使它们能够与HTML5一起工作--不需要超精确和脆弱的正则表达式。
发布于 2012-09-06 20:22:49
我已经为这种用法编写了主要的模式web-mode.el :编辑嵌入JS、CSS、Java (JSP)、PHP的HTML模板。您可以在http://web-mode.org Web- type上下载它。to根据块的类型进行语法突出显示和缩排。安装很简单:
(require 'web-mode)
(add-to-list 'auto-mode-alist '("\\.html$" . web-mode))
发布于 2010-12-17 08:10:02
问得好。看看你在第一次比赛中得到了多少好评!
每个人都有和你一样的经历。我也是。
我没有依赖于nhtml-mode,因为它给我带来了你所描述的那种陌生感,我寻找了另一种选择,并找到了multi-mode.el。它是一种通用的多模式框架。要使用它,您需要指定正则表达式来描述一种模式的开始位置和另一种模式的结束位置。因此,您可以使用<script...>
来启动javascript块,使用<style...>
来启动css块。然后你为每个模块插入你自己的模式--如果你喜欢espresso for javascript,那就使用它。对于标识其他块的其他正则表达式,依此类推。
实际上,当您在文档中导航时,会为每个块启用不同的模式。
我使用多模式生成了一个ASP.NET,它允许我在一个文件中编辑C#、HTML、CSS和Javascript,并根据光标在缓冲区中的位置进行适当的突出显示和字体显示。它并不完美,但我发现它对现有的可能性有了显着的改进。事实上,这可能就是你想要的。试一试。
https://code.google.com/p/csharpmode/source/browse/trunk/aspx-mode.el?r=14
https://stackoverflow.com/questions/4462393
复制相似问题