0

我想检查是否已经安装了pymacs。

4

3 回答 3

5

M-x locate-library将告诉您 emacs 是否可以在其load-path. 如果它没有返回任何内容,您可能需要先进行编辑load-path

于 2012-07-17T14:33:10.497 回答
2

There are many ways to do it.

  • type apropos, then pymacs. If it finds the symbols, it was loaded.

  • (require 'pymacs) -- if it does not return error, it was loaded

  • if you already loaded it, it called (provide 'pymacs), and the variable load-history keeps the symbols

There are still other ways to ckeck it.

于 2012-07-17T15:22:32.110 回答
1

不确定您是否在谈论 ELPA 包,但我的 .emacs 中有以下定义:

  (defun sh-elpa-ensure-package (名称)
      “确保安装了特定的软件包;如果没有,那么
  自动下载,编译和安装它。

  这主要由 sh-elpa-require 用于允许部署
  新机器的配置 - 因此包将是
  在新机器上下载(安装后它们是
  包管理器自动保持最新)。

  如下使用它:
  (sh-elpa-ensure-package 'org)"
      (if (not (package-installed-p name))
          (包安装名称)))

    (defun sh-elpa-require (名称)
      “标准 Emacs 'require' 的替代品
  功能。这使用 sh-elpa-require 下载并安装
  如有必要,在使用标准“要求”之前打包
  导入它的功能。这对于允许配置很有用
  只需“sh-elpa-require”一个包而不必费心
  检查它是否已经安装。”
      (sh-elpa-ensure-package 名称)
      (需要姓名))

然后我可以在我的 .emacs 中包含如下代码来激活包 - 如果它尚未安装,那么这将从 ELPA 下载它并在它是“必需的”之前对其进行字节编译:

(sh-elpa-require 'pymacs)

如果您只是在谈论检查是否从 elisp 安装了一个包,那么您也可以从上面的代码片段中挑选出它的骨架 - 请参阅该(if (not (package-installed-p name))位。

于 2012-07-18T07:33:15.133 回答