[英]Emacs: load package only for given major mode in init.el
不久前,我為一些使用特定格式的文件制作了.el文件(epx.el)。 我通過(require 'epx)
其加載到(require 'epx)
。
問題在於,在此epx.el中,存在:
(defadvice comment-region (after indent-after activate)
(indent-region beg end)
)
(defadvice uncomment-region (after indent-after activate)
(indent-region beg end)
)
我很麻煩,因為它會影響其他主要模式(特別是在python模式下)的注釋函數(例如comment-dwim
)的行為:當我取消注釋區域時,它會縮進縮進...)。 如果我在epx.el中注釋了這些行,就沒有更多問題了。
那么這些(defadvice ...)
僅在epx主模式下如何起作用?
謝謝!
您可以檢查當前緩沖區的主模式,並且只有在它為exp-mode
時才采取措施:
(defadvice comment-region (after indent-after activate)
(if (derived-mode-p 'exp-mode)
(indent-region beg end))
)
(defadvice uncomment-region (after indent-after activate)
(if (derived-mode-p 'exp-mode)
(indent-region beg end))
)
編輯:使用@Stefan建議的derived-mode-p
-p。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.