Pregunta

He decidido echar un vistazo a Emacs, y me gustó mucho. Ahora, estoy usando el Emacs Starter Kit , que proporciona mejores valores predeterminados y algunas personalizaciones agradables para la instalación predeterminada de Emacs.

Lo he personalizado un poco, agregué algunas cosas como yasnippet , color-themes , sin consolidar y otras cosas. He configurado un repositorio de github donde guardo todas las personalizaciones para poder acceder a ellos desde múltiples lugares o en caso de que algo salga mal y pierda mi directorio .emacs.d.

Todo esto es muy bueno, pero hay un problema: Emacs tarda unos 1-2 segundos en cargarse. AFAIK Puedo compilar archivos .el individuales con M-x byte-compile-file a .elc, y funciona. Pero hay muchos archivos .el, y me pregunto si hay una manera de compilarlos todos con un simple comando o algo así, para acelerar la carga de Emacs. Mi Emacs no siempre está abierto, y lo abro y cierro con bastante frecuencia, especialmente después de configurarlo como editor predeterminado para el comando de edición en Total Commander para acostumbrarme más rápido (sí, Windows XP aquí).

Mi versión de Emacs es la 22.3. Y sí, la instalación predeterminada de Emacs sin ninguna personalización se activa instantáneamente.

No estoy seguro de qué versión se prefiere al cargar, el .el o .elc compilado por cierto O.o

Entonces, ¿hay un comando elisp o un interruptor de línea de comando Emacs para hacer que Emacs compile en bytes todo en el directorio .emacs.d?

¿Fue útil?

Solución

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

compilará todos los archivos .el en el directorio y en todos los subdirectorios a continuación.

La parte C-u 0 es hacer que no pregunte sobre todos los archivos .el que no tienen una contraparte .elc.

Otros consejos

Para compilar byte automáticamente todo lo que necesita compilación de bytes cada vez que inicio emacs, coloco lo siguiente después de mis cambios en load-path en la parte superior de mi .emacs archivo:

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

Sorprendentemente, no agrega mucho a mi tiempo de inicio (a menos que sea necesario compilar algo).

Para acelerar mis emacs, primero identifiqué las partes lentas usando profile-dotemacs.el y luego los reemplazó con cargas automáticas .

Puede usar el indicador --batch para volver a compilar desde la línea de comandos.

Para recompilar todo, haga

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

o para recompilar un solo archivo a partir de un Makefile,

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

Esto se está alejando un poco de la pregunta, pero para resolver el problema de cargar lentamente puede usar la nueva función de demonio en Emacs 23.

  

" Si tiene muchos paquetes de soporte,   El inicio de emacs puede ser un poco lento.   Sin embargo, emacs 23 trae emacs   --daemon, que le permite iniciar emacs en segundo plano (por ejemplo   cuando inicias sesión). Puedes al instante   abrir nuevas ventanas (marcos) de emacs con   emacsclient Por supuesto que podrías   ya tengo un 'servidor' de emacs en   versiones anteriores, pero poder   iniciarlo en segundo plano hace que esto   una solución mucho mejor "

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

Para mi uso de spacemacs, el comando es spacemacs / recompile-elpa . El comando byte-recompile-directory no compila ningún archivo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top