Ich bin mir nicht hundertprozentig sicher, ob Sie wirklich nur mit require
oder use-package
... wirklich zuverlässig prüfen können. Wenn Sie jedoch package.el für die Funktionalität im Organisationsmodus verwenden, muss Ihre Konfiguration im Organisationsmodus möglicherweise verschoben werden, bis Ihre Pakete initialisiert wurden. Sie können dies mit einem Hook tun, der ausgeführt wird, nachdem Emacs mit dem Namen " after-init-hook
" initialisiert wurde .
Damit...
Das heißt, in Ihrem .emacs
brauchen Sie einen Haken wie:
(add-hook 'after-init-hook 'package-config)
Und woanders:
(defun package-config ()
;;Your org-mode config goes here.
)
Danach haben Sie Zugriff auf die Überprüfungs- und Download-Funktionen von package.el ...
Da Sie also auch die Existenz des Pakets überprüfen möchten, können Sie " (package-installed-p 'org-plus-contrib)
" verwenden und es mit " (package-install package)
" installieren, wenn es nicht vorhanden ist.
Insgesamt würde der Code wahrscheinlich ungefähr so aussehen:
(defun package-config ()
(unless (package-installed-p 'org-plus-contrib)
(package-refresh-contents)
(package-install 'org-plus-contrib)))
(add-hook 'after-init-hook 'package-config)
Der Rest Ihrer Konfiguration ist hinter dem (unless ...)
Körper her.
Auf diese Weise erhalten Sie Ihre Konfiguration, Ihre Paketinstallation wird überprüft und automatisch heruntergeladen, sodass Sie davon ausgehen können, dass alles, was über diese Zeile in der Funktion hinausgeht, die geladenen Beiträge verwenden kann. (Angenommen, Sie haben eine Netzwerkverbindung, falls diese nicht vorhanden ist.)
(use-package org-plus-contrib :ensure t)
? Zugegeben, ich verwende ein Fass mit Palette für die Paketverwaltung, aber es platziert /home/kmicu/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150202 in meinem Pfad und lädt es.