emacs autoloaded 中保证自动加载功能的机制是什么

2024-03-26

我知道所有标有“;;;###Autoload”行的函数都将是自动加载函数,但问题是执行此“自动加载函数”的底层机制是什么?还有为什么当从 elpa 安装软件包时,会出现一个名为 XXX-autoload.elc 的编译文件?


当您安装 Elpa 软件包时,Emacs 会扫描软件包中的所有 .el 文件以查找自动加载令牌,并将这些函数/变量的存根添加到 [package]-autoloads.el 文件中。存根只是将信息附加到函数/变量符号上,告诉 Emacs 在哪里可以找到实际的定义以及文档字符串的内容。然后它将所有 .el 文件编译为 .elc 文件,包括自动加载文件。

然后(每次启动 Emacs 时)它会加载并评估 [package]-autoloads.elc 文件,而不是主 .elc 文件。这样,加载包的速度就会快得多,因为只有在调用自动​​加载的符号之一时才会加载主 .elc 文件。在此之前,Emacs 并不知道主 .el 文件中的其他函数/变量。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

emacs autoloaded 中保证自动加载功能的机制是什么 的相关文章

  • 模棱两可的出现“只是”

    我是一个绝对的初学者 使用 emacs 浏览 LYAH 我当前的设置 Ubuntu 12 04 LTS 使用体验 初学者 GNU Emacs 23 Use Experience beginner 能够在 haskell 主要模式下工作 发现
  • 寻求 emacs 中的自动完成功能

    我正在寻找一个插件来为 emacs 中的 c 开发自动完成弹出窗口 我尝试过的是 Cedet Semantics 和自动完成模式 http cx4a org software auto complete index html 只要我已经有几
  • 如何告诉 emacs 以 C++ 模式打开 .h 文件?

    我应该向 emacs 在 Windows 上 文件中添加哪些行 以使其以 C 模式打开 h 文件 默认为C模式 尝试这个 add to list auto mode alist h c mode 每当您打开 h 文件时 都会使用 C 模式
  • 在 Emacs Lisp 中检查字符串是否以后缀结尾

    是否有一个函数可以检查字符串是否以某个子字符串结尾 Python 有endswith http docs python org 2 library stdtypes html highlight endswith str endswith
  • 如何在保存之前对 Emacs 中更改的行执行操作?

    我想添加一个 before save hook 我可以在其中仅对自上次保存以来更改的行执行一些操作 例如 删除尾随空格 检查缩进等 我不想对整个文件执行此操作 并且我知道每个选项都有单独的选项 只是为了删除所有更改行的尾随空格 等等 但我想
  • Emacs 在 haskell 模式下挂起,并调用 下面的 haskell-load-file 调用

    当在 Haskell 文件中时 我使用C c C l运行命令inferior haskell load file其目的是将当前文件加载到 GHCI 解释器中 但 Emacs 会挂起 直到我点击C g 有人知道我怎样才能让它发挥作用吗 all
  • 更改组织模式新一天开始的时间

    我使用组织模式来计时我的工作 有时我会工作几个小时到午夜 例如 我记录的时间从 2013 年 6 月 3 日晚上 10 点开始 到 2013 年 6 月 4 日凌晨 2 点结束 组织模式在凌晨 0 点进行划分 开始新的一天 但如果将 0am
  • 在 Emacs org-mode 中设置本地文件变量

    在特定的组织模式文件中 我不希望继承标签 我以为放 org use tag inheritance nil因为第一行可以解决问题 但这似乎不起作用 缺少手动执行setq声明 我怎样才能做到这一点 你缺少一个尾随 在标题评论中 尝试这个 or
  • 在 Emacs 中定义新的工具提示

    我想向 emacs 添加自定义工具提示 更具体地说 每当我将鼠标悬停在符号 函数 变量 名称上时 用我的鼠标我想看到带有符号定义的工具提示 我知道我可以使用 cscope 这样的工具找到此类信息 但我不知道如何找到 将 cscope 的输出
  • 如何从 ispell 私人词典中删除条目?

    我想知道如何从 ispell 私人词典中删除一个 错误插入的 条目 单词 EDIT 经过更多挖掘后 我仍然无法从默认字典中删除条目 但我认为解决方案可能是构建哈希程序 问题是生成要删除的条目列表 我找不到简单的示例 您应该能够编辑您的个人词
  • 符号的函数定义为 void:declare-function

    emacs 新手 OSX 上的 GNU Emacs 22 1 1 按照说明安装了邪恶 我得到 Symbol s function definition is void declare function emacs debug init gi
  • IPython 自动完成 emacs24 不起作用

    我将 emacs24 0 92 与 IPython 12 一起使用 我从 IPython 存储库中获取了 ipython el 文件并尝试了这个补丁 https github com ipython ipython pull 204但是自动
  • 如何根据文件位置运行钩子

    我参与了使用选项卡的 python 项目 但是我没有在我编写的所有其他代码中使用它们 在该特定项目中使用它们至关重要 项目位于特定目录下的一个目录中 IE main folder project1 project2 project3 etc
  • 如何从 Emacs 中运行 Cygwin Bash Shell?

    我在 Windows 上运行 GNU Emacs 因此输入 M x shell 启动 Windows 命令行 DOS shell 但是 我希望能够从 Emacs 中运行 Cygwin Bash Shell 或任何其他非 Windows sh
  • 如何在组织模式议程树视图中显示条目的完整上下文

    在组织模式的每日 每周议程视图中 有没有办法显示条目的完整上下文 我对代码的解读是 它找到时间戳上方的第一个标题并显示它 然而 就我而言 该标题通常有 3 4 层深度 如果没有上面的项目符号 就没有意义 似乎也没有办法可以轻松改变这一点 过
  • 如何使用 emacs prettify-symbols-mode?

    我有 emacs 版本 25 0 我启用prettify symbols mode 然后输入 lambda t 但它并不能美化 我该如何使用这个模式 还有哪些符号可用以及如何配置它 任何参考都值得赞赏 Edit 什么也没发生在scratch
  • 在 Emacs ruby​​ 模式下使用制表符缩进而不是空格

    我一直在尝试配置 Emacs 以便在缩进 Ruby 代码时插入一个 制表符 而不是一系列 空格 到目前为止 我已经尝试设置 varruby indent tabs mode to t这样 根据文档 它将 如果非零 则在 ruby 模式下插入
  • Emacs:当光标位于右括号时匹配括号

    之前有人问过 Emacs 当光标位于其上时突出显示匹配的括号 而不是其后 https stackoverflow com questions 16399530 emacs highlight matching paren when curs
  • 通过 Emacs 评估 ghci 或 Hugs 中的缓冲区

    在 Emacs 中使用 sml mode 我已经能够使用以下命令将缓冲区内容直接发送到较差的 SML 进程C c C b 现在我只想用 Haskell 做同样的事情 Haskell 模式似乎不支持这一点 所以我想知道 使用 Emacs 和
  • “swank-clojure”到底是做什么的,我们有“swank-SOMETHING_ELSE”吗?

    我的肤浅理解是 swank clojure 使 M x slime connect 成为可能 我的意思是 它提供了与 clojure 服务器的连接 例如 lein swank 我的理解正确吗 如果不是 那swank的目的是什么 那么 是否有

随机推荐

  • 需要更快的滚动应用函数以及开始停止索引

    下面是一段代码 它给出滚动 15 分钟 历史 窗口的交易价格水平的百分位 如果长度为 500 或 1000 它运行得很快 但正如您所看到的 有 45K 个观测值 对于整个数据来说 它的运行速度非常慢 我可以应用任何 plyr 功能吗 欢迎任
  • 如何将具有单个值的用户定义列添加到 SQL 查询

    我目前有一个 SQL 查询 它生成一个包含大约 10M 行的表 我想将此表附加到另一列 该列对所有 10M 行具有相同的条目 作为示例 请考虑以下玩具查询 SELECT PRODUCT ID ORDER QUANTITY FROM PROD
  • 在 py.test 中的每个测试之前和之后运行代码?

    我想在测试套件中的每个测试之前和之后运行额外的设置和拆卸检查 我看过固定装置 但不确定它们是否是正确的方法 我需要在每次测试之前运行设置代码 并且需要在每次测试后运行拆卸检查 我的用例是检查未正确清理的代码 它会留下临时文件 在我的设置中
  • TypeScript 类装饰器获取类名

    我试图在运行时在类装饰器中获取类的名称 缩小 当我这样做时 const metadata Reflect getMetadata design type target constructor 我变得不确定 我需要知道类名而不是缩小值 我认为
  • Objective C - 获取今天(明天)的第二天

    如何检查某个日期是否本质上是 明天 我不想在像今天这样的日期上添加时间或任何内容 因为如果今天已经22 59 添加太多会延续到后天 添加太少则时间到了12 00会错过明天 我怎样才能检查两个NSDate并确保其中一个相当于另一个的明天 Us
  • Sklearn ROC AUC 分数:ValueError:y 应该是一个一维数组,而是一个形状为 (15, 2) 的数组

    我有这个带有目标的数据集LULUS 这是一个不平衡数据集 我正在尝试打印roc auc如果我可以对数据的每个折叠进行评分 但在每个折叠中 不知怎的 它总是会引发错误说ValueError y should be a 1d array got
  • 断点指出“objc_autoreleaseNoPool”

    因此 我正在调试一个应用程序 为其应用程序发布做准备 并且我为 所有异常 启用了通用断点 从那时起 每次我运行该应用程序时 控制台都会打印 捕获点 2 抛出 挂起的断点 1 objc exception throw 已解决 objc 117
  • Laravel 具有不同的会话生命周期

    问 如何在 Laravel 5 中创建不同生命周期的会话 这个问题不是重复的这个问题 https stackoverflow com q 40258339 1474817 我不想将其用于任何类型的登录或注册 我只想将其存储 5 分钟 因为获
  • 如何像编译器一样获取每个虚函数索引?

    是否有一些插件或工具可以读取 h 文件 或简单地修改 Intellisense 本身 并吐出每个函数及其虚拟函数表索引 有一种模式我还没有弄清楚与多态性有关 当你开始有 5 个或更多的类相互派生时 它就会变得困难 5 倍 但无论如何 MSV
  • IntelliJ IDEA:如何修复损坏的字体显示?

    无法阅读该语言 怎么设置成英文呢 The issue is not with the language but with some broken font mapping on your system The workaround is t
  • Node.js + Azure SQL 数据库

    我正在挣扎微软的node js sql客户端 https github com WindowsAzure node sqlserver 我已经安装了它 使用 github 页面上的指南没有任何错误 并且一切在本地运行完美 但是当我使用 gi
  • 如何根据 HTML 从统计页面中提取玩家信息?

    我正在尝试使用 selenium 抓取网站的一些信息 下面是该网站的链接http www ultimatetennisstatistics com playerProfile playerId 4742 http www ultimatet
  • C语言中的宏(#define)

    我正在阅读hoard内存分配器的源代码 在gnuwrapper cpp文件中 有以下代码 define CUSTOM MALLOC x CUSTOM PREFIX malloc x 是什么意思CUSTOM PREFIX malloc x i
  • MPAndroidChart 条形图 - 如何对组之间具有随机 x 轴间隔的条形进行分组?

    我想制作一个条形图 其中每个数据点将 3 个不同的数据集分组在一起 如下所示 但是 我无法使用库提供的功能将条形图分组在一起groupBars方法 因为无论我为条目设置什么 x 值 它都会根据我在其参数中指定的间隔对条形进行分组 例如 如果
  • 镜头:新型变焦

    我有兴趣获得zooming我的 monad 变压器堆栈的功能定义如下 newtype Awesome a Awesome StateT AwesomeState ExceptT B ByteString IO a deriving Func
  • Python 将列表转换为集合,大 O

    感谢您的帮助 words Big list of words words set set words 当 n len words 时 我很难确定 set words 的复杂性是多少 是 O n 因为它在列表的所有项目上移动 还是 O l n
  • 如何让odeint成功?

    我是 python 初学者 目前使用 scipy 的odeint计算耦合的 ODE 系统 但是 当我运行时 python shell 总是告诉我 gt gt gt Excess work done on this call perhaps
  • 在 PHP 中将十六进制转换为图像?

    我正在开发通过以下方式与服务器通信的移动应用程序PHP Webservice 这是我第一次使用 PHP 我设法将数据上传到数据库 现在我需要发送图像以将其存储在 ftp 服务器中 为此我转换了image gt hex并从我的应用程序发送 服
  • 如何在安装时强制 Chrome 扩展上的键盘快捷键

    我正在尝试实现一个使用键盘快捷键触发事件的 Chrome 扩展 快捷方式在这里声明 commands sample suggested key default Ctrl I windows Ctrl I description Refres
  • emacs autoloaded 中保证自动加载功能的机制是什么

    我知道所有标有 Autoload 行的函数都将是自动加载函数 但问题是执行此 自动加载函数 的底层机制是什么 还有为什么当从 elpa 安装软件包时 会出现一个名为 XXX autoload elc 的编译文件 当您安装 Elpa 软件包时