Introdução
Por quê Emacs?
Como uma pessoa curiosa e com pouca capacidade de controlar impulsos, sempre
acabava pesquisando sobre uma coisa ou outra sobre produtividade, e qualquer um
que passe tempo o suficiente pesquisando sobre isto inevitavelmente se depara
com pessoas advogando o uso de (Neo)Vim e/ou Emacs.
Um dos pontos mais comuns dentre as discussões sobre o uso e migração entre
Emacs e (Neo)Vim, além de edição de texto, é Emacs Org Mode. Uma solução
completa para quase todas as suas necessidades produtivas, incluindo:
gerenciamento de notas, gerenciamento de tarefas, agenda, gerenciamento de
tempo e mais.
Eventualmente a curiosidade e baixo controle de impulsos tiraram vantagem de
mim e decidi experimentar Emacs e Org Mode por algum tempo.
O que é Emacs?
De maneira simples e redutiva Emacs é um editor de texto altamente modificável.
Mas, uma citação bem comum (repetida tantas vezes que o autor parece ter sido
esquecido) e satírica pode descrever melhor emacs: “Emacs é um ótimo sistema
operacional, faltando apenas um editor decente”. Este sentimento sobre o emacs
parece ser bem comum dado a popularidade de frameworks como Doom
Emacs e Spacemacs que pré-configuram pacotes que emulam os atalhos
do vim no Emacs, afinal “o melhor editor não é o Emacs nem o Vim, é o Emacs
e o Vim.” (página inicial do Spacemacs)
Por quê do Zero?
Basicamente três razões:
- Frameworks adicionam uma camada de complexidade. Emacs é tão
configurável que utilizar algum framework ou bootstrap para agilizar a
configuração inicial inevitavelmente me via gastando mais tempo tentando
entender o framework utilizado do que Emacs em sí, e sempre acabava me
perguntando se não seria mais fácil escrever uma configuração do zero. - Responsividade. Periódicamente sentia o Emacs lento, e me perguntava se
a lentidão era inerente ao programa ou se era causado por algumas das
diversas configurações e pacotes adicionados pelo framework. - Linguagem funcional. Emacs Lisp é um dialeto de Lisp (linguagem
funcional) usado para implementar a maior parte das funcionalidades do Emacs
e a principal forma de configurar e modificar o comportamento do progama.
Configuração inicial
Criar arquivo de configuração vazio
Crie um arquivo de configuração no caminho .config/emacs/init.el
, para ter certeza que o emacs vai utilizar este arquivo, remova os seguintes diretórios .emacs/
,.emacs.d/
(se estiverem presentes).
Remover poluição visual
Adicione o texto a seguir no arquivo de configuração
|
|
Gerenciamento de pacotes
Emacs tem algumas opções para gerenciamento de pacotes, mas nesta séries decidi utilizar o Elpaca, apenas por, teoricamente, ser mais rápido que as outras opções.
Para configurar elpaca adicione o texto abaixo no .config.emacs/init.el
|
|
E crie um arquivo no caminho .config/emacs/early-init.el
|
|
Configuração básica de usabilidade
Os atalhos padrão do Emacs são bem desconfortáveis de utilizar para mim, então vou instalar um pacote chamado evil-mode
para emular atalhos e comportamentos do vim no emacs.
|
|
Uma outra coisa básica para qualquer editor é capacidade de sugerir/autocompletar código, para isso vamos configurar o pacote ivy
.
|
|
E a última mudança básica será utilizar o pacote doom-modeline
para melhorar as informações exibidas sobre o buffer atual.
|
|