如何configurationemacs来编辑包含Javascript的HTML文件?
我已经开始使用emacs编辑HTML标签和javascript内容的HTML文件的痛苦的第一步。 我已经安装了nxhtml并尝试使用它 – 即设置为使用nxhtml-mumamo模式的.html文件。 但我不喜欢它。 当我编辑代码的Javascript部分时,Tab缩进不像编辑C / C ++代码时那样工作。 它开始把选项卡放在行内,如果你尝试点击行前面的空白处的tab,它会插入选项卡,而不是重新制表行。
另一个我不喜欢的方面是它不像通常的C / C ++模式那样进行语法着色。 在编辑HTML文件时,我更喜欢默认java模式的行为,但不能很好地与HTML代码一起玩。 🙁
1)是否有更好的方式来编辑HTML文件的Javascript部分?
2)有没有办法让nxhtml的JavaScript部分使用默认的Java模式?
问候,
中号
另一个解决scheme是multi-web-mode
:
https://github.com/fgallina/multi-web-mode
这可能比已经提到的multi-mode
更容易configuration。
您只需在您的.emacs
文件中configuration您的首选模式,如下所示:
(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
更新:简化正则expression式来检测JavaScript或CSS区域,使他们与HTML5工作 – 不需要超精确和脆弱的正则expression式。
我已经编写了这种用法的主要模式web-mode.el:编辑embeddedJS,CSS,Java(JSP),PHP的HTML模板。 你可以在http://web-mode.org下载它;.Web-mode.el根据块的types做语法高亮和缩进。 安装很简单:
(require 'web-mode) (add-to-list 'auto-mode-alist '("\\.html$" . web-mode))
伟大的问题。 看看你有多lessupvotes你第一个!
每个人都有和你一样的经历。 我也是。
而不是依赖于你所描述的那种performance出同样的陌生感的nhtml模式,我寻找另外一个选项,发现了multi-mode.el 。 这是一种通用的多模式骨架。 要使用它,你需要指定正则expression式来描述一个模式开始和另一个模式结束。 所以,你寻找<script...>
来启动一个javascript块, <style...>
来启动一个css块。 然后,你插入自己的模式为每个块 – 如果你喜欢JavaScript的咖啡,使用它。 等其他正则expression式识别其他块。
实际上,当您浏览文档时,每个块都会启用不同的模式。
我使用多模式生成一个ASP.NET,允许我在单个文件中编辑C#,HTML,CSS和Javascript,并根据光标在缓冲区中的位置进行适当的突出显示和分类。 这并不完美,但我发现这是对现有可能性的显着改善。 其实这可能是你想要的。 试试看。
https://code.google.com/p/csharpmode/source/browse/trunk/aspx-mode.el?r=14
不是一个很好的解决scheme,但如果你真的需要在你的HTML中的JavaScript是一个快速的解决scheme是select包含JavaScript的区域,并使用命令narrow-to-region
( Cx nn
),然后切换到您首选的JavaScript模式。 命令加widen
你回来,( Cx nw
)。
这听起来像你已经错误地设置你的nxhtml。 唯一必要的设置应该是加载autostart.el
文件,然后一切都应该工作到一定的水平。 nxhtml在任何方面都不是完美的,但我使用html / css / javascript / mako的经验相当不错,至less除了mako外, 但我很确定我已经搞砸了mako部分。
这是我如何初始化我的nxhtml:
(when (load "autostart.el" t) (setq nxhtml-skip-welcome t mumamo-chunk-coloring 'submode-colored indent-region-mode t rng-nxml-auto-validate-flag nil))