emacs - 如何设置 byte-recompile-directory 使用缓存目录?
问题描述
我使用 (byte-recompile-directory (expand-file-name "~/.emacs.d") 0) 生成 .elc 文件,它改善了 emacs 启动,但我想设置 byte-recompile-directory 使用一个缓存文件夹不会在同一个文件夹中生成.elc文件。我想知道我需要声明emacs使用缓存文件夹而不是el文件吗?emacs会自动加载这些·.elc·文件吗?像这样
├── core
│ ├── core-keybinds.el
│ ├── core-provider.el
│ └── core.el
├── early-init.el
├── init.el
但是当我使用 (byte-recompile-directory (expand-file-name "~/.emacs.d") 0)
├── core
│ ├── core-keybinds.el
│ ├── core-keybinds.elc
│ ├── core-provider.el
│ ├── core-provider.elc
│ └── core.el
│ ├── core.elc
├── early-init.el
|── early-init.elc
├── init.el
├── init.elc
也许最好的方式是这样
├── .cache
│ ├── core-keybinds.elc
│ ├── core-provider.elc
│ ├── core.elc
│ └── init.elc
│ └── early-init.elc
├── core
│ ├── core-keybinds.el
│ ├── core-provider.el
│ └── core.el
├── early-init.el
├── init.el
那么如何让emacs加载这些.elc文件......我是emacs的新手。所以需要帮助。
解决方案
您可以设置byte-compile-dest-file-function
一个将文件放入缓存目录的函数:
(defun my-bytecomp-dest-file (source)
(expand-file-name (file-name-nondirectory source) "~/.cache/"))
(setq byte-compile-dest-file-function 'my-bytecomp-dest-file)
您需要将缓存目录显式添加到加载路径.elc
才能找到文件:
(add-to-list 'load-path "~/.cache/")
(require 'core)
然后您可以使用例如或加载文件(load "core")
。
推荐阅读
- python - 如何处理具有动态类值的 selenium 中的非选择下拉菜单
- vba - 修复了报表中饼图的切片颜色
- python - 根据网站 django 上的操作显示用户上个月的进度
- c# - 在 Linux 上可靠地获取捆绑的可执行文件的位置
- flutter - 如何覆盖等待和异步的抽象类?
- python - 需要上传子目录及其内容,而不仅仅是当前目录中的文件
- c# - 为什么通过 postman Kestrel 环境连接时 API 返回 404?
- ionic-framework - 如何在构建ionic2之前为android动态更改包名称
- ansible - 将 ansible 角色的任务拆分为多个文件
- javascript - 如何使用反应钩子验证表单?