【问题标题】:Emacs: Symbol's function definition is void: use-packageEmacs:Symbol的函数定义无效:use-package
【发布时间】:2023-03-28 05:24:01
【问题描述】:

我正在尝试在 Windows 上配置 Emacs,并且我想在我的配置中插入一个包“use-package”,但是当我按下在 Emacs 上执行时显示消息“符号的函数定义无效: 使用包"

(setq inhibit-startup-message t)

(require 'package)
(setq package-enable-at-startup nil)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/"))
(add-to-list 'package-archives '("gnu" . "https://elpa.gnu.org/packages/"))

(package-initialize)


(unless (package-installed-p 'use-package)
  (package-refresh-contents)
  (package-install 'use-package))

有时我会收到错误消息“使用包不可用。”

    Debugger entered--Lisp error: (void-function package-installed-p)
    (package-installed-p (quote use-package))
    (if (package-installed-p (quote use-package)) nil (package-refresh-contents) (package-install (quote use-package)))
    eval((if (package-installed-p (quote use-package)) nil (package-refresh-contents) (package-install (quote use-package))) nil)
    elisp--eval-last-sexp(nil)
    eval-last-sexp(nil)
    funcall-interactively(eval-last-sexp nil)
    call-interactively(eval-last-sexp nil nil)
    command-execute(eval-last-sexp)

【问题讨论】:

  • 我认为您显示的代码不会导致这种情况。您能否获取回溯以查看究竟是哪个代码路径触发了此消息? (如果没有别的,最后的右括号也不见了,所以这个 precise 代码甚至没有解析。)
  • 我忘了在问题上加上最后一个括号。

标签: debugging emacs package


【解决方案1】:

您应该能够在使用M-x package-list-packages 生成的列表中找到use-package。如果是这种情况,那么(package-install 'use-package) 应该会成功:该软件包在 MELPA 上可用。

要使用它,你必须添加

(require 'use-package)

到您的 .emacs(或等效文件)。

【讨论】:

  • 感谢您的帮助,我认为由于地址 MELPA 上的“https”被更改为“http:”,emacs 没有安装 MELPA 包。
  • 对于它的价值,在 Aquamacs (Mac OS Emacs) 中,命令是 M-x package-list-packages,也许在其他变体中也是如此。
  • 如果不是这样(use-package 缺失)怎么办?
  • 你需要将MELPA仓库添加到package-archives: (add-list package-archives '("melpa" . "melpa.org/packages/"))` - 重启Emacs后应该可以找到它在列表中。
猜你喜欢
  • 1970-01-01
  • 2018-05-21
  • 2022-12-27
  • 2020-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多