Jak zrobić bajt-skompilować wszystko w moim.emacs.katalog d?

Postanowiłem sprawdzić Emacsa i bardzo mi się spodobał. Teraz używam Emacs Starter Kit, który zapewnia lepsze domyślne ustawienia i kilka ładnych dostosowań do domyślnej instalacji Emacsa.

Trochę go dostosowałem, dodałem coś w rodzaju yasnippet, kolor-motywy, unbound i inne rzeczy. Skonfigurowałem repozytorium github, w którym przechowuję wszystkie konfiguracje, dzięki czemu mogę uzyskać do nich dostęp z wielu miejsc lub w razie potrzeby coś pójdzie źle i stracę swoje .emacs.katalog D.

To wszystko jest bardzo ładne, ale jest problem: załadowanie Emacsa zajmuje około 1-2 sekund. AFAIK mogę skompilować indywidualnie .pliki el Z M-x byte-compile-file to .elc i działa. Ale jest ich wiele .pliki el, i zastanawiam się, czy jest sposób, aby skompilować je wszystkie za pomocą prostego polecenia, czy coś takiego, aby przyspieszyć ładowanie Emacsa. Mój Emacs nie zawsze jest otwarty, a ja Otwieram i zamykam go dość często, szczególnie po ustawieniu jako domyślny edytor polecenia edycji w Total Commanderze, aby szybciej się do niego przyzwyczaić(tak, windows xp tutaj).

Moja wersja Emacsa to 22.3. I tak, domyślna instalacja Emacsa bez żadnych modyfikacji uruchamia się natychmiast.

Nie jestem pewien, która wersja jest preferowana podczas ładowania, the. el lub compiled .elc one by the way O. o

Więc, czy istnieje polecenie elisp lub przełącznik linii poleceń Emacs, aby Emacs Byte-skompilować wszystko w .emacs.katalog d?

Author: Mikka, 2009-08-01

5 answers

C-u 0 M-x byte-recompile-directory

Skompiluje wszystkie .pliki el w katalogu i we wszystkich podkatalogach poniżej.

C-u 0 część polega na tym, aby nie pytać o wszystkie .plik el, który nie ma .odpowiednik elc.

 188
Author: Laurynas Biveinis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-13 15:43:43

Aby automatycznie skompilować wszystko, co wymaga kompilacji bajtów za każdym razem, gdy uruchamiam Emacsa, umieszczam po zmianach load-path na górze pliku .emacs:

(byte-recompile-directory (expand-file-name "~/.emacs.d") 0)

O dziwo, to nie dodaje wiele do mojego czasu uruchamiania (chyba, że coś trzeba skompilować).

Aby przyspieszyć mój emacs, najpierw zidentyfikowałem wolne części za pomocą profilu -dotemacs.el, a następnie zastąpiono je autoloadami.

 43
Author: Richard Hansen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-17 21:49:03

Możesz użyć znacznika --batch do przekompilowania z linii poleceń.

Aby przekompilować wszystkie, wykonaj

emacs --batch --eval '(byte-recompile-directory "~/.emacs.d")'

Lub przekompilować pojedynczy plik z pliku Makefile,

emacs --batch --eval '(byte-compile-file "your-elisp-file.el")'
 21
Author: Mike Samuel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-12 18:31:39

To trochę kołysze się od pytania, ale aby rozwiązać problem powolnego ładowania, możesz użyć nowej funkcji demona w Emacsie 23.

" Jeśli masz wiele pakietów wsparcia, uruchamianie Emacsa może być trochę powolne. Jednak emacs 23 przynosi Emacsa -- daemon, który umożliwia uruchamianie Emacsa w tle (np. po zalogowaniu). Możesz natychmiast wyskakują nowe okna (ramki) Emacsa z emacsclient. Oczywiście, możesz Mam już "serwer" Emacsa w starsze wersje, ale będąc w stanie start it in the background makes this o wiele ładniejsze rozwiązanie "

Z http://emacs-fu.blogspot.com/2009/07/emacs-23-is-very-near.html

 17
Author: mwilliams,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-02 02:23:47

Dla mojego korzystania z spacemacs, komenda jest spacemacs/recompile-elpa. Polecenie byte-recompile-directory nie kompiluje żadnego pliku.

 -1
Author: Yu Shen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-01 15:43:57