当遇到相关文件扩展名时,懒加载模式是否有最佳实践?
目前我安装了大约25种不同的Emacs模式,启动速度变慢了。例如,尽管随时准备使用clojure-mode很棒,但我很少使用它,除非打开扩展名为.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新手,所以欢迎评论!),但是我对于在网上找不到任何关于这个主题的资料感到不安。这种方法合理吗?
这似乎可行(我是 Elisp 新手,欢迎评论!),但是我担心在网上找不到关于此主题的任何信息。这种方法是否合理?