Mak*_*mmy 91 html javascript lisp emacs
我已经开始使用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模式?
问候,
中号
Kai*_*ver 40
另一种解决方案是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)
Run Code Online (Sandbox Code Playgroud)
更多关于Emacs的多种模式(叹息):
http://www.emacswiki.org/emacs/MultipleModes
更新:简化了正则表达式,以检测JavaScript或CSS区域,使其与HTML5一起使用 - 无需超精确和脆弱的正则表达式.
小智 31
我已经为这种用法编写了主要模式web-mode.el:编辑嵌入JS,CSS,Java(JSP),PHP的HTML模板.您可以在http://web-mode.org上下载它 .Web-mode.el根据块的类型进行语法突出显示和缩进.安装很简单:
(require 'web-mode)
(add-to-list 'auto-mode-alist '("\\.html$" . web-mode))
Run Code Online (Sandbox Code Playgroud)
Che*_*eso 13
好问题.看看你在第一个上有多少赞成票!
每个人都有和你一样的经历.我也是.
而不是依赖于nhtml模式,它表现出我所描述的同样的陌生感,我寻找另一个选项并找到了multi-mode.el.它是一种通用的多模式骨架.要使用它,您需要指定正则表达式来描述一个模式的开始位置和另一个模式的结束位置.所以,你寻找<script...>启动一个javascript块,并<style...>启动一个CSS块.然后你为每个块插入自己的模式 - 如果你喜欢espresso的javascript,请使用它.等等识别其他块的其他正则表达式.
实际上,当您浏览文档时,会为每个块启用不同的模式.
我使用多模式生成一个ASP.NET,它允许我在一个文件中编辑C#,HTML,CSS和Javascript,并根据光标在缓冲区中的位置进行适当的突出显示和fontification.它并不完美,但我发现这是对现有可能性的显着改进.事实上,这可能就是你想要的.试试看.
https://code.google.com/p/csharpmode/source/browse/trunk/aspx-mode.el?r=14
不是一个很好的解决方案,但如果你真的需要在你的HTML中使用javascript快速修复是选择包含javascript的区域并使用命令narrow-to-region(C-x n n)然后切换到您首选的JavaScript模式.该命令widen带你回来,(C-x n w).