Я использую Emacs 24.4. Я добавил большое количество установленных пакетов с помощью директивы Mx list-packages за год использования. Я хотел бы экспортировать список установленных пакетов для использования в другом месте. Копирование моего .emacs приводит к некоторым ошибкам при запуске, которые заставляют мою память загружать некоторые вещи. Я подозреваю, что мог бы скопировать .emacs.d, но это может показаться плохой идеей.
Есть ли какая-либо процедура или директива, которую я могу выдать, чтобы вывести список установленных пакетов в файл, который можно легко использовать для получения их на чужих машинах?
.emacs.d
каталога (или, желательно, его контроль над версиями), как правило, хорошая идея. (Это также целесообразно переименовать~/.emacs
в ,~/.emacs.d/init.el
если вы решите сделать это.)Ответы:
Каталог
~/.emacs.d/elpa
содержит все пакеты, установленные сlist-packages
. Вы можете скопировать этот каталог.Я бы, вероятно, также запустил что-то вроде
(byte-recompile-directory "~/.emacs.d/elpa" 0 t)
(0
значит не спрашивать,t
означает принудительную перекомпиляцию), чтобы перекомпилировать все байты, потому что я считаю, что между версиями Emacs существует некоторая несовместимость файлов, скомпилированных байтами.источник
Я просмотрел
package.el
файл и нашел переменнуюpackage-alist
. Похоже, это список всех установленных пакетов, включая пакеты, которые требуются установленными вами пакетами.Если все, что вам нужно, это список установленных имен пакетов, следующий код запишет имена пакетов из этого списка в
*Messages*
буфер.Я не программист на Лиспе, поэтому уверен, что кто-нибудь сможет написать гораздо лучшую версию этого кода.
Я также начал использовать код use-package с этой
:ensure t
опцией, чтобы установить все мои пакеты на новый ПК.источник
Одним из способов может быть установка пакета, если он еще не установлен, вы должны обновить файл инициализации и добавить следующие строки:
Измените
my-packages
переменную и добавьте / удалите пакет, который вы хотите установить.M-x describe-variable package-activated-list
выдаст вам список установленных на данный момент пакетов.После этого единственное, чем можно поделиться - это ваш файл инициализации. Надеюсь, это поможет.
источник