2012-04-27 64 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") 
))) 
相關問題