
En pocas palabras, estoy transmitiendo emacs para el trabajo de mi día cotidiano, por lo que necesitaba una configuración rápida y estable que se adapte a mis necesidades. Minemacs está cambiando constantemente, consulte el registro de cambios para obtener más información. Consulte también la lista de módulos y paquetes de Minemacs.
Nota
Tenga en cuenta que no tengo intención o disponibilidad para crear una alternativa a los emacs o spacemacs de Doom. Si bien encuentro alegría (como cualquier otro emacser) en el retoque con emacs, Minemacs sigue siendo solo una herramienta que uso en mi trabajo diario, y que me gusta compartir con otros emacsers.
Minemacs viene con baterías incluidas. Estas son algunas de sus características únicas:
Diferir los paquetes de carga hasta que el usuario los necesite. O, para los paquetes que deben cargarse, intente hacerlo después de comenzar las emacs.
Los paquetes se agrupan en módulos, con un poco de pegamento para hacerlos trabajar juntos.
Minemacs incluye una gran cantidad de modos y paquetes principales para trabajar con lenguajes de programación. Sin embargo, la mayoría de estos paquetes no están cargados en el inicio. Minemacs utiliza un sistema a pedido para cargar los paquetes solo cuando el usuario abre un archivo compatible, o cuando abre un búfer con un modo que puede ser extendido por uno de los módulos a pedido. El comportamiento de esta característica personalizado a través de minemacs-on-demand-enable-auto-mode , minemacs-on-demand-enable-magic-mode , minemacs-on-demand-enable-interpreter-mode y minemacs-on-demand-enable-companion-packages .
Abra un caparazón y ejecute:
git clone --recursive https://github.com/abougouffa/minemacs.git ~ /.emacs.d && emacs Al ejecutar este comando, el repositorio se clonará y se lanzará EMACS. Durante la ejecución inicial, EMACS instalará automáticamente los paquetes necesarios. Es posible que deba ejecutar Mx minemacs-run-build-functions cuando las emacs se cargan para instalar algunas cosas adicionales (construya algunas bibliotecas, instale fuentes nerd, etc.)
Importante
Tenga en cuenta que estoy usando un nuevo EMACS 30.0.92 (versión recomendada) construida a partir de la rama emacs-30 principalmente en dos máquinas, una basada en Manjaro Linux y la otra en Debian 12. Sin embargo, he configurado algunas acciones básicas de Github CI que prueban automáticamente esta configuración en Emacs 29, 30 y 31 en Ubuntu Linux y Macos y en emacs 29 en Windows. Estas acciones aseguran que Minemacs sea "ejecutable" en estos sistemas; con todos sus módulos habilitados. Sin embargo, se deben realizar más pruebas para validar correctamente la configuración en su conjunto en sistemas que no sean Linux.
Para personalizar MINEMACS, puede agregar un conjunto específico de archivos dentro del directorio de configuración de usuario predeterminado, que se encuentra de forma predeterminada en ~/.minemacs.d/ o .emacs.d/user-config/ (el primero que se encuentra). Sin embargo, si prefiere usar un directorio diferente, tiene la flexibilidad de hacerlo estableciendo la variable de entorno MINEMACSDIR .
Hay dos archivos principales que se pueden agregar en el directorio ~/.minemacs.d :
~/.minemacs.d/modules.el contiene una lista de módulos habilitados y/o una lista de paquetes deshabilitados (se pueden configurar los paquetes minemacs-modules y minemacs-disabled-packages en este archivo). Entonces, si desea habilitar un módulo ( ex. me-prog ) pero necesita excluir un paquete en particular ( ex. ts-movement ), puede agregar este último a minemacs-disabled-packages .~/.minemacs.d/config.el contiene la configuración y la personalización del usuario, puede pensar que su init.el , que se carga al final de Minemacs ' init.el ! Este repositorio contiene archivos de esqueleto para modules.el y config.el (en skel/ ). Recomendamos encarecidamente seguir la misma estructura que en los archivos de esqueleto, especialmente el uso de with-eval-after-load y use-package en lugar de usar en lugar de usar require directamente ( require los paquetes de inmediato, lo que aumenta el tiempo de inicio de las emacs).
En mi flujo de trabajo, utilizo principalmente los mismos archivos de configuración en todas mis máquinas (que, siguiendo la tradición, se comparten en mi repositorio de DotFiles). Sin embargo, tengo algunas configuraciones específicas de la máquina (locales) que contienen algunas configuraciones privadas y específicas de la máquina. Por ejemplo, los uso para sobrescribir la dirección de correo electrónico en mi estación de trabajo, para configurar mis cuentas de correo electrónico, configurar Forge y JIRA Integration en mi estación de trabajo, etc.
Para este propósito, Minemacs también verificará los archivos en ~/.minemacs.d/local/{early-config,init-tweaks,modules,config}.el y cargarlos, después de ~/.minemacs.d/{early-config,init-tweaks,modules,config}.el si existe.
Minemacs también proporciona algunos archivos de personalización avanzados, estos archivos se pueden usar para ajustar el comportamiento de Minemacs, agregar un código de inicialización temprano, hacer que Minemacs sean ejecutables en versiones de emacs más antiguas, etc.
~/.minemacs.d/early-config.el se carga al final de la early-init.el de Minemacs. Puede usarlo para configurar algunas cosas tempranas, como ajustar la interfaz de usuario, sobrescribir las variables establecidas por minemacs en ~/.emacs.d/early-init.el , etc.~/.minemacs.d/init-tweaks.el se carga en una etapa temprana del archivo init.el Puede usarlo para hacer algunas cosas útiles antes de que Minemacs comience a personalizar los paquetes y los módulos de carga. Vea los comentarios en init.el para obtener más información.Puede personalizar el comportamiento de Minemacs a través de algunas variables de entorno.
MINEMACS_DIR o MINEMACSDIR : ruta para el directorio de configuración de usuario de Minemacs, si no se establece, se utiliza ~/.minemacs.d/ .MINEMACS_MSG_LEVEL : cambiar el nivel de registro de mensajes, de 1 (solo errores) a 4 (todos los mensajes).MINEMACS_VERBOSE : sea más detallado (útil para la depuración).MINEMACS_DEBUG : habilitar la depuración en el inicio (y ser detallado).MINEMACS_ALPHA : Establecer background-alpha en porcentaje (valor de 0 a 100).MINEMACS_NOT_LAZY : cargue paquetes perezosos inmediatamente después de cargar emacs.MINEMACS_ALWAYS_DEMAND : cargue todos los paquetes de inmediato (esto funciona estableciendo use-package-always-demand a t y use-package-always-defer a nil (por defecto, los conjuntos de minemacs use-package para siempre diferir, a menos que explícita :demand ).MINEMACS_IGNORE_USER_CONFIG : valores separados por espacios, utilizados para deshabilitar la carga ~/.minemacs.d/<file>.el Archivos de configuración del usuario. Los valores aceptados para <file> son: early-config , init-tweaks , modules , config , local/early-config , local/init-tweaks , local/modules y local/config . Use all para deshabilitar todos los archivos de configuración de usuario.MINEMACS_LOAD_ALL_MODULES : cargue todos los módulos (sin tener en cuenta ~/.minemacs.d/modules.el ).MINEMACS_BENCHMARK : ejecute un punto de referencia en la inicialización de emacs (usando benchmark-init.el ) y muestre los resultados después del inicio (incluidos los paquetes perezosos).MINEMACS_NO_PROXIES : establezca si tiene una configuración de minemacs-proxies en su early-config.el pero desea comenzar las emacs sin pasar por estos proxies (útil si usa algunos proxies para el lugar de trabajo, pero desea que las emacs comiencen sin pasar por ellos para poder descargar paquetes). Para obtener más información sobre variables de personalización, funciones y comandos definidos por Minemacs, puede consultar la documentación generada a partir del código fuente.
Si experimentó un problema con Minemacs, puede echar un vistazo a las preguntas frecuentes, consultar las discusiones, verificar los problemas abiertos o abrir uno nuevo.