Oczywiste jest, że nie wszystkie pakiety lokalne / niestandardowe / osobiste powinny zostać oficjalnie wydane i byłoby głupotą, aby skorzystać z wbudowanego wsparcia zarządzania pakietami. Zastanawiam się, jak wygenerować i aktywować automatyczne ładowanie pakietów lokalnych? Podobnie package.el
jest w przypadku zainstalowanych pakietów z ELPA. Aby uniknąć ponownego wynalezienia koła, czy istnieje sposób, aby „udawać”, że jakiś katalog lokalny (z podkatalogami, z których każdy jest pakietem lokalnym / niestandardowym / osobistym) to ELPA? Jestem również otwarty na to, el-get
czy taki scenariusz może być obsługiwany na przykład przez niestandardowe przepisy.
Jestem pewien, że zadanie jest dość powszechne i każdy, kto używa Emacsa na poziomie zaawansowanym, prędzej czy później dojdzie do tego. Czy ktoś mógłby podzielić się swoimi doświadczeniami w tej dziedzinie?
źródło
update-directory-autoloads
może być używany niezależnie od dowolnego menedżera pakietów.update-directory-autoloads
, aby w efekcie uczynić go rekurencyjnym. 2. Możesz użyćupdate-file-autoloads
dla każdego pliku, który Cię interesuje, bez względu na katalog, w którym się znajduje.package.el
jest również nierekurencyjne (tzn. Nie obsługuje pakietów ze źródłami w podkatalogach).Odpowiedzi:
Prawidłowym rozwiązaniem (IMO) jest użycie menedżera pakietów, który ma wyraźne wsparcie dla tego przypadku użycia. Byłoby to
straight.el
, co napisałem w tym celu.Możesz przeczytać pełną dokumentację, w tym porównania z innymi menedżerami pakietów, w README , więc zostanę przy tym, jak możesz użyć,
straight.el
aby rozwiązać konkretny problem.~/.emacs.d/straight/repos/<my-repo>
.Załaduj za pomocą
Jesteś skończony. Za każdym razem, gdy wprowadzasz zmiany w kodzie źródłowym, generowanie autoloada i kompilacja bajtów zostaną ponownie wykonane (przy następnym uruchomieniu Emacsa). Dostajesz także takie rzeczy, jak zarządzanie zależnościami, opcjonalna automatyzacja kontroli wersji itp. Za darmo.
straight.el
zuse-package
, jeśli wolisz (tylko cukier To składnia w przeważającej części).źródło
W systemie Linux wykonuję następujące czynności:
Konfiguruję lokalne repozytorium melpy poprzez klonowanie melpy.
Zmieniam przepisy, które chcę wskazywać na moje lokalne pakiety. Oto:
local-melpa/recipies/ace-window
Następnie z typu local-mepla
make all
lub wmake recipies/ace-window
celu zbudowania pakietówlocal-melpa/packages
Następnie
make packages/archive-contents
, która zapełnia listę pakietów.Następnie w użyciu do naśladowania, aby emacs powiedział mojej lokalnej melpie
Nie wymyśliłem, jak uruchomić
make
w systemie Windows. Ale mogę budować pakiety wlocal-melpa
systemie Linux i kopiować je do systemu Windows, a emacs poprawnie je rozumie i instaluje.Zaletą tego jest to, że mogę zresetować w dowolnym momencie, usuwając mój
~/.emacs.d/elpa/*
katalog i instalując niestandardowe aktualizacje w dowolnym pakiecie.źródło
Jeśli zastąpiłeś już zainstalowany pakiet inną wersją, a brakuje Ci tylko pliku autoloads, możesz go użyć do wygenerowania pakietu:
Uznałem, że jest to łatwiejsze niż korzystanie z automatycznych narzędzi do aktualizacji katalogu, kiedy muszę obniżyć pakiet do wcześniejszej wersji.
Myślę, że tak naprawdę nie odpowiedziałem na twoje pytanie. Na razie pozostawię tę odpowiedź tutaj, ale moja odpowiedź jest bardziej odpowiednia tutaj: /programming/26348561/how-to-generate-autoloads-for-elpa-packages/50100170
źródło