2012-04-27 31 views
3

因此,为了优化emacs启动时间,我更愿意封装所有的mods在一个hook或加载后的eval-after。所以我想出了python,cpp和latex,但是我坚持使用nXhtml。我试过以下内容:如何让emacs只在php/html文件打开时才加载nXhtml,并且防止它在启动时加载

(eval-after-load "HTML-mode" 
'(progn 
(load-file "~/.emacs.d/plugins/nxhtml/autostart.el") 
)) 

哪一个根本不起作用。

的代码:

(add-hook 'html-mode-hook (lambda() 
(progn 
    (load-file "~/.emacs.d/plugins/nxhtml/autostart.el") 
))) 

负载nXhtml但nXhtml模式的某些部分没有打开(仅SGML和AC),从而范围并不在我的PHP源或自动填充不同颜色/托架完成没有按”工作。

它正常工作的唯一方法是如果我让它在启动时加载。

望着跟踪,在启动期间nxhtml加载它说:

“majmodpri申请,优先运行...(完成)”

然而,当负载封装通过HTML的方式挂接或EVAL-后负荷跟踪说:

“majmodpri申请,优先运行... MU:majmodpri检查改变 majmodpri申请的在先伊蒂埃斯:缓冲= index.php文件,HTML模式,零=> SGML模式,零majmodpri申请,优先运行...(完成)”

任何想法?

回答

2

我觉得nXhtml的自动启动文件(这是所有你会加载)的设计是相当小的,所以它可能是这种情况,你可以”在不限制其某些能力的情况下减少太多?

实际需要多长时间?它看起来应该有一个“Nxml/Nxhtml Autostart.el加载在%.1f秒”消息记录。

+0

需要1.7秒来加载所有内容。虽然这不会是可怕的,但我想知道是否有可能在我仅仅需要Web开发时加载nXhtml,因为我使用Emacs编辑几乎所有的内容 – octi 2012-05-02 17:35:32

+0

你有没有字节编译它? (IIRC nXhtml提供了一个菜单项来做到这一点,这样你就不用担心需要编译什么,什么不需要编译。) – phils 2012-05-02 21:57:18

+0

Nxml/Nxhtml Autostart.el在0.1秒内加载。字节编译做到了。我可以用0.1秒来生活得很好,而不是1.7 :) – octi 2012-05-03 19:40:11

0

Infact html-mode在sgml-mode.el文件中定义。

所以你eval-after-load应该如下

(eval-after-load "sgml-mode" (lambda() 
;;; code to load your nxhtml 
           )) 
+0

由于某种原因,当我使用的是它给了我一个“递归加载错误”。这可能是因为nxhtml触发sgml模式挂钩 – octi 2012-04-27 19:34:57

0

当我编程ROR应用程序时,我还使用nxhtml-mode来编辑erb文档。 看看我的配置,这可能会帮助你。

(autoload 'eruby-nxhtml-mumamo-mode "autostart.el" "Edit erb document." t) 
(add-to-list 'auto-mode-alist '("\\.erb" . eruby-nxhtml-mumamo-mode)) 
0

我只是结合了OP代码和它的作品对我来说:

(add-hook 'html-mode-hook (lambda() 
(progn 
    (load-file "~/.emacs.d/vendor/~nxhtml/nxhtml/main/autostart.el") 
))) 
相关问题