Je ne suis pas sûr à 100% que vous pouvez vraiment vérifier de manière fiable avec seulement require
ou use-package
... Mais si vous utilisez package.el pour la fonctionnalité de mode organisationnel, votre configuration en mode organisationnel devra peut-être être différée jusqu'à ce que vos packages aient été initialisés. Vous pouvez le faire avec un hook les courses après qu'Emacs a initialisé appelé " after-init-hook
".
Donc...
Cela signifie que dans votre .emacs
, vous aurez besoin d'un crochet comme:
(add-hook 'after-init-hook 'package-config)
Et ailleurs:
(defun package-config ()
;;Your org-mode config goes here.
)
Après cela, vous avez accès à la fonctionnalité de vérification et de téléchargement de package.el ...
ainsi, puisque vous voulez également vérifier l'existence du paquet, vous pouvez utiliser " (package-installed-p 'org-plus-contrib)
" et l'installer avec " (package-install package)
" s'il n'est pas là.
Au total, le code ressemblerait probablement à quelque chose comme:
(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)
Le reste de votre configuration étant après le (unless ...)
corps.
De cette façon, vous obtenez votre configuration, vous obtenez la vérification de l'installation de votre package et vous la téléchargez automatiquement afin que vous puissiez supposer en toute sécurité que tout ce qui dépasse cette ligne dans la fonction peut utiliser les contributions chargées. (En supposant que vous disposez d'une connexion réseau si elle n'existe pas.)
(use-package org-plus-contrib :ensure t)
? Certes, j'utilise cask avec palette pour la gestion des paquets, mais il place /home/kmicu/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150202 sur mon chemin et le charge.