Emacs包安装脚本无法获取包

时间:2017-08-08 17:45:37

标签: emacs package

我想使用脚本在移动到新计算机时自动安装所有软件包。

我写了这个脚本,emacs给了我Package ‘highlight-symbol-’ is unavailable

#! emacs -q --script 
;;; load package module
(require 'package)
(dolist (url '(("melpa" . "https://melpa.org/packages/")
           ("melpa-stable" . "http://stable.melpa.org/packages/")
       ))
  (add-to-list 'package-archives url t))
(package-initialize)

;;; read package list from `packages` file
(defvar *packages-list '("highlight-symbol" "monokai-theme"))


(unless package-archive-contents
  (package-refresh-contents))

;;; install packages
(dolist (package *packages-list)
  (if (package-installed-p (intern package))
      (princ (format "%s already installed \n" package))
    (progn
      (princ (format "%s is installing \n" package))
      (package-install package)
      (princ (format "%s installed \n\n")))))

我尝试了什么:

  1. 使用emacs -q并尝试进入 scratch (package-install package)仍有问题。
  2. 我不知道{' package-install中的DONT-SELECT含义,所以我尝试了(package-install package nil)(package-install package ""),但仍有问题。
  3. M-x package-install运行良好。
  4. 我该如何解决?我在这个剧本中犯了什么误解。 谢谢!

1 个答案:

答案 0 :(得分:0)

对不起,伙计们,这是一个愚蠢的问题。

答案是package-install接受符号,但字符串。

我将代码更改为(package-install (intern package),然后就可以了。