Emacs:Symbol的函数定义是void:use-package

gla*_*nti 13 debugging emacs package

我正在尝试在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))
Run Code Online (Sandbox Code Playgroud)

有时我收到错误消息"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)
Run Code Online (Sandbox Code Playgroud)

Nic*_*ckD 13

您应该能够use-package在列表中找到M-x package-list-packages.如果是这种情况,则(package-install 'use-package)应该成功:该软件包可在MELPA上获得.

要使用它,您必须添加

(require 'use-package)
Run Code Online (Sandbox Code Playgroud)

你的.emacs(或同等的).

  • 就其价值而言,在Aquamacs(Mac OS Emacs)中,命令是Mx package-list-packages,也许在其他变体中也是如此。 (2认同)