遇到相关文件扩展名时,是否有关于延迟加载模式的最佳实践?
此时我已经安装了大约 25 种不同的 Emacs 模式,并且启动变得很慢。例如,虽然准备好 clojure 模式很好,但我很少使用它,并且我想完全避免加载它,除非我打开扩展名为 .clj 的文件。一般来说,这种“惰性需求”功能似乎是进行模式配置的正确方法。
我在网上没找到什么,所以我自己尝试了一下。
代替:
(require 'clojure-mode)
(require 'tpl-mode)
我有这个:
(defun lazy-require (ext mode)
(add-hook
'find-file-hook
`(lambda ()
(when (and (stringp buffer-file-name)
(string-match (concat "\\." ,ext "\\'") buffer-file-name))
(require (quote ,mode))
(,mode)))))
(lazy-require "soy" 'soy-mode)
(lazy-require "tpl" 'tpl-mode)
这似乎有效(我是 elisp 新手,所以欢迎评论!),但我对在网上找不到任何关于这个主题的文章感到不安。这是一个合理的做法吗?
您想要的设施称为自动加载. The clojure-mode
源文件,Clojure-mode.el,包括有关如何安排此操作的评论:
;; Add these lines to your .emacs:
;; (autoload 'clojure-mode "clojure-mode" "A major mode for Clojure" t)
;; (add-to-list 'auto-mode-alist '("\\.clj$" . clojure-mode))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)