148 votes

Comment puis-je octet-compilez le tout dans mon .emacs.d: répertoire?

J'ai décidé de vérifier Emacs, et je l'ai aimé beaucoup. Maintenant, je suis en utilisant le Emacs Starter Kit, qui permet de mieux les valeurs par défaut et quelques belles personnalisations d'installation par défaut d'Emacs.

J'ai personnalisé un peu, ajouté quelques trucs comme yasnippet, couleur-thèmes, indépendant, et d'autres choses. J'ai mis en place un dépôt github où je garde toutes les personnalisations afin que je puisse y accéder à partir de plusieurs endroits ou dans le cas où quelque chose va mal et je perds mon .emacs.d annuaire.

Tout cela est très joli, mais il y a un problème: Emacs prend environ 1 à 2 secondes à se charger. Autant que je sache, je peux compiler individu .el fichiers avec M-x octets de la compilation du fichier .elc, et il fonctionne. Mais il y a beaucoup de .el fichiers, et je me demande si il existe un moyen pour compiler le tout avec une commande simple ou quelque chose, afin d'accélérer le chargement d'Emacs. Mon Emacs n'est pas toujours ouverte, et je l'ouvrir et le fermer assez fréquemment, surtout après que j'ai configurer comme éditeur par défaut pour modifier la commande dans Total commander pour s'y habituer plus vite (ouais, windows xp ici).

Mon Emacs version est 22.3. Et oui, la valeur par défaut Emacs installation sans personnalisations s'allume instantanément.

Je ne suis pas sûr de la version est préféré lors du chargement, l' .el ou compilé .elc d'ailleurs O. o

Alors, est-il un elisp de commande ou Emacs commutateur de ligne de commande pour faire Emacs octet-tout compiler en .emacs.d: répertoire?

231voto

Laurynas Biveinis Points 6305

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

compiler toutes les .el fichiers dans le répertoire et tous les sous-répertoires ci-dessous.

L' C-u 0 partie consiste à faire il pas poser des questions sur toutes les .el fichier qui n'a pas un .elc homologue.

51voto

Richard Hansen Points 13044

Automatiquement octet de compiler tout ce qui doit l'octet de compiler chaque fois que je lance emacs, j'ai mis la suivante après mes changements d' load-path au dessus de mes .emacs le fichier:

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

Étonnamment, il n'ajoute pas beaucoup à mon temps de démarrage (à moins que quelque chose a besoin d'être compilé).

Pour augmenter la vitesse de mon emacs, j'ai d'abord identifié les parties lentes à l'aide du profil dotemacs.el puis remplacées par de la charge automatiquement quand.

28voto

Mike Samuel Points 54712

Vous pouvez utiliser l' --batch drapeau à recompiler à partir de la ligne de commande.

Pour recompiler tous, ne

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

ou de recompiler un seul fichier à partir d'un Makefile,

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

19voto

mwilliams Points 6748

C'est en se balançant un peu de la question, mais pour résoudre le problème de chargement lentement, vous pouvez utiliser le nouveau démon de la fonctionnalité dans Emacs 23.

"Si vous avez beaucoup de forfaits de soutien, emacs de démarrage peut être un peu lent. Cependant, emacs 23 apporte emacs --daemon, qui permet de lancer emacs en arrière-plan (par exemple lorsque vous vous connectez). Vous pouvez instantanément pop de nouvelles emacs windows (frames) avec emacsclient. Bien sûr, vous pourriez déjà une emacs 'server' dans les versions plus anciennes, mais être capable de il démarre en arrière-plan qui rend ce une bien belle solution"

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X