Używam emacsa 24.4. Dodałem dużą liczbę zainstalowanych pakietów przez dyrektywę list-pack Mx w ciągu około roku użytkowania. Chciałbym wyeksportować listę zainstalowanych pakietów do użytku w innym miejscu. Kopiowanie moich plików .emacs powoduje błędy podczas uruchamiania, które pobudzają moją pamięć do zainstalowania pewnych rzeczy. Podejrzewam, że mógłbym skopiować plik .emacs.d, ale wydaje się, że to zły pomysł.
Czy istnieje procedura lub dyrektywa, którą mogę wydać, aby zrzucić listę zainstalowanych pakietów do pliku, którego można użyć w celu łatwego przeniesienia ich na maszyny zagraniczne?
.emacs.d
katalogu (lub raczej poddanie go kontroli wersji) jest ogólnie dobrym pomysłem. (Jest to również rozsądne, aby zmienić nazwę~/.emacs
, aby~/.emacs.d/init.el
, jeśli zdecydujesz się to zrobić.)Odpowiedzi:
Katalog
~/.emacs.d/elpa
zawiera wszystkie zainstalowane pakietylist-packages
. Możesz skopiować ten katalog.Prawdopodobnie uruchomiłbym też coś w stylu
(byte-recompile-directory "~/.emacs.d/elpa" 0 t)
(0
oznacza, że nie pytaj,t
oznacza wymuszenie ponownej kompilacji), aby wszystko skompilować bajtowo, ponieważ uważam, że istnieje pewna niezgodność plików skompilowanych bajtowo między wersjami Emacsa.źródło
Przejrzałem
package.el
plik i znalazłem zmiennąpackage-alist
. Wygląda na to, że jest to lista wszystkich zainstalowanych pakietów, w tym pakietów wymaganych przez zainstalowane pakiety.Jeśli wszystko, czego potrzebujesz, to lista zainstalowanych nazw pakietów, poniższy kod wypisze nazwy pakietów z tej listy do
*Messages*
bufora.Nie jestem programistą Lisp, więc jestem pewien, że ktoś może napisać znacznie lepszą wersję tego kodu.
Zacząłem także używać kodu use-package z
:ensure t
opcją, aby zainstalować wszystkie moje pakiety na nowym komputerze.źródło
Jednym ze sposobów może być instalacja pakietu, jeśli jeszcze nie został zainstalowany, należy zaktualizować plik init i dodać następujące wiersze:
Zmodyfikuj
my-packages
zmienną i dodaj / usuń pakiet, który chcesz zainstalować.M-x describe-variable package-activated-list
wyświetli listę aktualnie zainstalowanego pakietu.Następnie jedyną rzeczą do udostępnienia jest plik init. Mam nadzieję, że to pomoże.
źródło