3

因此,为了优化 emacs 启动时间,我更喜欢将所有 mod 封装在一个 hook 或一个 eval-after-load 中。所以我想出了python、cpp和latex,但我被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-apply-priorities running ...(完成)”

但是,当负载由 html-mode-hook 或 eval-after-load 封装时,跟踪会显示:

“majmodpri-apply-priorities running ... MU:majmodpri-check 更改 majmodpri-apply-priorities: buffer=index.php, html-mode,nil => sgml-mode,nil majmodpri-apply-priorities running ... (完毕)”

有任何想法吗?

4

4 回答 4

2

我认为 nXhtml 的自动启动文件(这就是您要加载的所有文件)被设计为相当小,因此您可能无法在不限制其某些功能的情况下进一步减少它?

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

于 2012-04-27T22:28:28.877 回答
0

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

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

(eval-after-load "sgml-mode" (lambda ()
;;;  code to load your nxhtml
                               ))
于 2012-04-27T19:07:24.383 回答
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))
于 2012-04-28T06:21:34.600 回答
0

我只是结合了 OP 代码,它对我有用:

(add-hook 'html-mode-hook (lambda()
(progn
  (load-file "~/.emacs.d/vendor/~nxhtml/nxhtml/main/autostart.el")
))) 
于 2012-05-18T17:08:12.087 回答