【问题标题】:Do we need to add (require 'package_name.el) in init file if we installed packages with package manager?如果我们使用包管理器安装包,我们是否需要在 init 文件中添加 (require 'package_name.el)?
【发布时间】:2018-02-11 12:55:47
【问题描述】:

如标题所示,如果我们已经使用包管理器而不是手动安装包,我很困惑是否应该在 init 文件中添加(require 'package_name)

一些包,比如 yasn-p 或自动完成,即使我不添加 (require 'yasnippet) 它仍然可以正常工作,但是如果我不添加,像 alpha (果酱中的一个包)这样的包(require 'alpha),那么 Emacs 无法识别热键 C->,用于增加透明度,我得到错误消息 C-> is undefined,那么 require 命令实际上是做什么的,我们应该在什么时候添加它?

【问题讨论】:

  • 通常不会。如果您调用的函数是自动加载的,则不需要该包。您可以查看源代码,或通过C-h f <function-name>。而不是要求您可以将(autoload '<function-name> "<source-file>") 添加到您的初始化中

标签: emacs require alpha package-managers


【解决方案1】:

require 加载有问题的库,除非它已经被加载。

加载库需要时间,因此通常首选自动加载,因为这会将加载延迟到需要时。

package.el 通常有助于自动加载 ELPA 包,因此大部分您不需要 require 这些 - 但它最终取决于 (a) 包作者, (b) 您尝试使用它的确切方式。

【讨论】:

    【解决方案2】:

    你所描述的听起来就像一个包装错误:即来自 Marmalade 的 alpha 包装包装不良。 (require '<foo>) 不应更改键绑定,例如,<foo> 可能由于各种原因“意外”加载。

    相反,它可能应该定义一个自动加载的 alpha-mode 次要模式,因此您可以使用 (alpha-mode 1)(或自定义的等效项)而不是 (require 'alpha)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-20
      • 2021-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多