
Para encurtar a história, estou transmitindo o EMACS para o trabalho do meu cotidiano, então eu precisava de uma configuração rápida e estável que atenda às minhas necessidades. O MineMacs está mudando constantemente, consulte o log de alterações para obter mais informações. Veja também a lista dos módulos e pacotes dos Minemacs.
Observação
Observe que não tenho intenção ou disponibilidade para criar uma alternativa para o Doom Emacs ou Spacemacs. Enquanto eu encontro alegria (como qualquer outro Emacser por aí) em mexer com o Emacs, os Minemacs continuam sendo apenas uma ferramenta que eu uso no meu trabalho diário e que gosto de compartilhar com outros emacsers.
Os Minemacs vêm com baterias incluídas. Aqui estão alguns de seus recursos únicos:
Adie os pacotes de carregamento até que o usuário precise deles. Ou, para pacotes que precisam ser carregados, tente fazer isso depois de iniciar o Emacs.
Os pacotes são agrupados em módulos, com um pouco de cola para fazê -los trabalhar juntos.
Os Minemacs incluem um grande número de maiores modos e pacotes para trabalhar com linguagens de programação. No entanto, a maioria desses pacotes não está carregada na inicialização. O MineMacs usa um sistema sob demanda para carregar os pacotes somente quando o usuário abre um arquivo suportado ou quando ele abre um buffer com um modo que pode ser estendido por um dos módulos sob demanda. O comportamento desse recurso personalizado por meio de minemacs-on-demand-enable-auto-mode , minemacs-on-demand-enable-magic-mode , minemacs-on-demand-enable-interpreter-mode e minemacs-on-demand-enable-companion-packages .
Abra uma concha e corra:
git clone --recursive https://github.com/abougouffa/minemacs.git ~ /.emacs.d && emacs Ao executar este comando, o repositório será clonado e os emacs serão lançados. Durante a execução inicial, o EMACS instalará automaticamente os pacotes necessários. Pode ser necessário executar Mx minemacs-run-build-functions quando o Emacs carregar para instalar algumas coisas extras (construir algumas bibliotecas, instalar fontes nerds, etc.)
Importante
Please note that I'm using a fresh Emacs 30.0.92 (recommended version) built from the emacs-30 branch mainly on two machines, one based on Manjaro Linux and the other on Debian 12. However, I have set up some basic Github CI actions that automatically test running this configuration on Emacs 29, 30 and 31 in Ubuntu Linux and MacOS and on Emacs 29 in Windows. Essas ações garantem que os Minemacs sejam "executáveis" nesses sistemas; com todos os seus módulos ativados. No entanto, testes adicionais devem ser feitos para validar adequadamente a configuração como um todo em sistemas que não sejam o Linux.
Para personalizar os Minemacs, você pode adicionar um conjunto específico de arquivos no diretório de configuração do usuário padrão, localizado por padrão em ~/.minemacs.d/ .emacs.d/user-config/ (o primeiro a ser encontrado). No entanto, se você preferir usar um diretório diferente, você terá a flexibilidade de fazê -lo definindo a variável de ambiente MINEMACSDIR .
Existem dois arquivos principais que podem ser adicionados no diretório ~/.minemacs.d :
~/.minemacs.d/modules.el contém uma lista de módulos ativados e/ou uma lista de pacotes desativados ( minemacs-modules e minemacs-disabled-packages podem ser definidos neste arquivo). Portanto, se você deseja ativar um módulo ( por exemplo, me-prog ), mas precisará excluir um pacote específico ( por exemplo, ts-movement ), poderá adicionar o último ao minemacs-disabled-packages .~/.minemacs.d/config.el contém a configuração e a personalização do usuário, você pode pensar nisso como o seu init.el , que é carregado no final do init.el do MineMacs! Este repositório contém arquivos de esqueleto para modules.el e config.el (em skel/ ). É altamente recomendável seguir a mesma estrutura que nos arquivos esqueletos, especialmente o uso de with-eval-after-load e use-package em vez de require diretamente ( require cargas dos pacotes imediatamente, o que aumenta o tempo de inicialização do EMACS).
No meu fluxo de trabalho, uso principalmente os mesmos arquivos de configuração em todas as minhas máquinas (que, seguindo a tradição, são compartilhadas no meu repositório de pontos). No entanto, tenho algumas configurações específicas da máquina (local) que contêm algumas configurações privadas e específicas da máquina. Por exemplo, eu os uso para substituir o endereço de e -mail na minha estação de trabalho, para configurar minhas contas de email, para configurar a integração do Forge e do JIRA em minha estação de trabalho e assim por diante.
Para esse fim, os MineMacs também verificarão os arquivos em ~/.minemacs.d/local/{early-config,init-tweaks,modules,config}.el e carregar-os, após os ~/.minemacs.d/{early-config,init-tweaks,modules,config}.el .
O MineMacs também fornece alguns arquivos avançados de personalização, esses arquivos podem ser usados para ajustar o comportamento dos Minemacs, adicionar algum código de inicialização precoce, tornar os Minemacs executáveis nas versões mais antigas do EMACS, etc.
~/.minemacs.d/early-config.el é carregado no final do early-init.el Você pode usá-lo para configurar algumas coisas iniciais, como ajustar a interface do usuário, substituir as variáveis definidas por MineMacs em ~/.emacs.d/early-init.el e assim por diante.~/.minemacs.d/init-tweaks.el é carregado em um estágio inicial do arquivo init.el Você pode usá -lo para fazer algumas coisas úteis antes que os Minemacs comecem a personalizar pacotes e carregar módulos. Veja os comentários no init.el para obter mais informações.Você pode personalizar o comportamento dos Minemacs por meio de algumas variáveis de ambiente.
MINEMACS_DIR ou MINEMACSDIR : caminho para o diretório de configuração do usuário do MineMacs, se não estiver definido, ~/.minemacs.d/ é usado.MINEMACS_MSG_LEVEL : Altere o nível de log da mensagem, de 1 (apenas erros) para 4 (todas as mensagens).MINEMACS_VERBOSE : seja mais detalhado (útil para depuração).MINEMACS_DEBUG : Ative a depuração na startup (e seja detalhado).MINEMACS_ALPHA : defina o quadro background-alpha em segundo plano (valor de 0 a 100).MINEMACS_NOT_LAZY : Carregue pacotes preguiçosos imediatamente após o carregamento do EMACS.MINEMACS_ALWAYS_DEMAND : carregue todos os pacotes imediatamente (isso funciona definindo use-package-always-demand para t e use-package-always-defer para nil (por padrão, os minemacs definem use-package para sempre adiar, a menos que explicite :demand seja adicionada).MINEMACS_IGNORE_USER_CONFIG : valores separados por espaço, usados para desativar o carregamento ~/.minemacs.d/<file>.el arquivos de configuração do usuário. Os valores aceitos para <file> são: early-config , init-tweaks , modules , config , local/early-config , local/init-tweaks , local/modules e local/config . Use all para desativar todos os arquivos de configuração do usuário.MINEMACS_LOAD_ALL_MODULES : carregue todos os módulos (sem levar em consideração ~/.minemacs.d/modules.el ).MINEMACS_BENCHMARK : Execute uma referência na inicialização do EMACS (usando benchmark-init.el ) e exiba os resultados após a inicialização (incluindo pacotes preguiçosos).MINEMACS_NO_PROXIES : Defina se você tiver minemacs-proxies configurando seu early-config.el mas deseja iniciar o Emacs sem passar por esses proxies (útil se você usar alguns proxies para o local de trabalho, mas deseja que o Emacs comece sem passar por eles para poder baixar pacotes). Para obter mais informações sobre variáveis, funções e comandos de personalização definidos pelo MineMacs, você pode consultar a documentação gerada a partir do código -fonte.
Se você teve um problema com os Minemacs, pode dar uma olhada nas perguntas frequentes, consultar as discussões, verificar questões abertas ou abrir uma nova.