Domanda

Ho deciso di dare un'occhiata a Emacs e mi è piaciuto molto. Ora sto usando il Emacs Starter Kit , che in genere fornisce impostazioni predefinite migliori e alcune belle personalizzazioni all'installazione predefinita di Emacs.

L'ho personalizzato un po ', ho aggiunto alcune cose come yasnippet , color-themes , non associato e altre cose. Ho creato un repository github dove conservo tutte le personalizzazioni così posso accedervi da più punti o nel caso qualcosa vada male e perdo la mia directory .emacs.d.

Tutto ciò è molto bello, ma c'è un problema: Emacs impiega circa 1-2 secondi per caricarsi. AFAIK Posso compilare singoli file .el con M-x byte-compile-file in .elc, e funziona. Ma ci sono molti file .el e mi chiedo se esiste un modo per compilarli tutti con un semplice comando o qualcosa del genere, per accelerare il caricamento di Emacs. Il mio Emacs non è sempre aperto e lo apro e lo chiudo abbastanza frequentemente, soprattutto dopo averlo impostato come editor predefinito per il comando di modifica in Total Commander per abituarsi più velocemente (sì, Windows XP qui).

La mia versione di Emacs è la 22.3. E sì, l'installazione predefinita di Emacs senza alcuna personalizzazione si avvia all'istante.

Non sono sicuro di quale versione sia preferita durante il caricamento, la .el o la .elc compilata a proposito O.o

Quindi, esiste un comando elisp o un'opzione della riga di comando di Emacs per fare in modo che Emacs compili byte nella directory .emacs.d?

È stato utile?

Soluzione

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

compilerà tutti i file .el nella directory e in tutte le sottodirectory di seguito.

La parte C-u 0 serve a non chiedere informazioni su ogni file .el che non ha una controparte .elc.

Altri suggerimenti

Per compilare automaticamente byte tutto ciò che richiede la compilazione di byte ogni volta che avvio emacs, ho inserito quanto segue dopo le mie modifiche a percorso di caricamento nella parte superiore del mio .emacs file:

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

Sorprendentemente, non aggiunge molto al mio tempo di avvio (a meno che qualcosa non debba essere compilato).

Per accelerare i miei emacs, ho prima identificato le parti lente usando profile-dotemacs.el e poi li ha sostituiti con caricamenti automatici .

Puoi usare il flag --batch per ricompilare dalla riga di comando.

Per ricompilare tutto, fai

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

o per ricompilare un singolo file come da un Makefile,

emacs --batch --eval '(byte-compile-file "your-elisp-file.el")'

Questo sta ondeggiando un po 'dalla domanda, ma per risolvere il problema del caricamento lento puoi usare la nuova funzione demone in Emacs 23.

  

" Se hai molti pacchetti di supporto,   L'avvio di emacs può essere un po 'lento.   Tuttavia, emacs 23 porta emacs   --daemon, che consente di avviare emacs in background (ad esempio   quando accedi). Puoi istantaneamente   fai apparire nuove finestre (frame) di emacs con   emacsclient. Certo che potresti   ho già un 'server' emacs in   versioni precedenti, ma potendo   avviarlo in background rende questo   una soluzione molto migliore "

Da http: // emacs-fu .blogspot.com / 2009/07 / emacs-23-è-molto-near.html

Per l'utilizzo di spacemacs, il comando è spacemacs / recompile-elpa . Il comando byte-recompile-directory non compila alcun file.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top