2

elisp を使用して、Emacs パッケージ管理ツール - パッケージによってインストールされたパッケージのバージョンを取得するにはどうすればよいですか? バージョン情報は によって作成されたパッケージバッファに含まれているため、何らかの方法でそれを行う必要がありますlist-packages

4

1 に答える 1

3
(defun get-package-version (name)
  (when (member name package-activated-list)
    (package-desc-vers (cdr (assoc name package-alist)))))

ほとんどのパッケージ バージョンは、[major-version minor-version]. GitHub からビルドされた Melpa パッケージは time of form を使用し[YYYYMMDD hhmm]ます。これらのリストから文字列が必要な場合は、次のようにすることができます。

(defun* package-version-string ((major minor))
  (format "%s.%s" major minor))

(package-version-string (get-package-version 'pep8))  ; => "1.2"

更新package-archive-contents: インストールされていないパッケージを取得するには、次のようにのメンバーシップをテストできます。

(defun get-not-installed-packages ()
  (remove-if (lambda (x) (assoc (car x) package-alist)) package-archive-contents))

(defun get-not-installed-package-version (name)
  (let ((pkg (assoc name (get-not-installed-packages))))
    (when pkg
      (package-desc-vers (cdr pkg)))))
于 2012-12-31T03:40:57.630 に答える