Comment enregistrer une liste de tous les paquets installés dans Emacs 24?

J’utilise le prélude comme configuration de base d’Emacs. J’ai installé beaucoup de paquets du gestionnaire de paquets et je veux utiliser mes parameters sur une autre machine.

Je ne veux pas transporter les paquets installés et je ne veux pas non plus créer une liste manuellement.

Quelle est la manière de sauvegarder une liste de tous les paquets installés dans prelude-package.el ou tout autre fichier afin que, lorsque je transmette cette configuration à mon autre ordinateur, ils y soient automatiquement installés lors de la première utilisation?

    La méthodologie canonique est la meilleure (décrite par ataylor). Voici une méthode plus maladroite.

    Mx list-packages . Cs installé jusqu’à ce que vous trouviez la première ligne du paquet installé. Commencez à sélectionner avec C-SPC . Descendez jusqu’à ce que vous atteigniez les paquets intégrés. Copier avec Mw . Cx b pour le nouveau tampon. Coller avec Cy . Cx Cs pour enregistrer le fichier.

    Seul avantage que je vois, c’est que c’est un peu plus descriptif. Montrer une petite description de vos paquets. utile lorsque vous installez des paquets et que vous l’oubliez.

    Comme mentionné à la façon d’installer automatiquement les paquets emacs en spécifiant une liste de noms de paquets? , il serait préférable d’enregistrer également la version du paquet dont vous avez besoin. Pour ce faire, vous pouvez utiliser la fonction suivante:

     (defun list-packages-and-versions () "Returns a list of all installed packages and their versions" (mapcar (lambda (pkg) `(,pkg ,(package-desc-version (cadr (assq pkg package-alist))))) package-activated-list)) 

    Cela vous donnera une liste de paires (NAME VERSION) . Malheureusement, je n’ai pas été en mesure de trouver un moyen d’installer une version spécifique d’un package. Il semble que package.el récupère toujours les dernières informations disponibles. Ce que je fais maintenant c’est:

     (defun install-packages-with-specific-versions (package-version-list) "Install the packages in the given list with specific versions. PACKAGE-VERSION-LIST should be a list of (NAME VERSION) lists, where NAME is a symbol identifying the package and VERSION is the minimum version to install." (package-download-transaction (package-compute-transaction () package-version-list))) 

    J’ai écrit une fonction plus longue pour installer les packages correspondant au numéro de version exact, mais elle échoue car package.el récupère par défaut uniquement les dernières versions disponibles pour chaque package. essentiel