Pular para o conteúdo principal

A Guerra dos Editores: Vim vs. Emacs e a Cultura Hacker (Edição Definitiva)

Publicado em 27 de dezembro de 202560 min de leitura
Imagem de tecnologia relacionada ao artigo vim-vs-emacs-guerra-editores-historia

A Guerra dos Editores: Vim vs. Emacs e a Cultura Hacker

Na história da religião humana, tivemos católicos contra protestantes, sunitas contra xiitas. Na história da computação, tivemos Vi contra Emacs.

Essa "Guerra dos Editores" dura mais de 45 anos. Ela sobreviveu à queda da União Soviética, à ascensão e queda da Sun Microsystems, à bolha ponto-com e ao nascimento dos smartphones. Por décadas, hackers se recusaram a trabalhar lado a lado se o colega usasse o "editor inimigo".

Para quem usa VS Code, Sublime Text ou Notepad++, isso parece loucura. "São apenas editores de texto, ferramentas para escrever código, certo?". Errado. Vi (Vim) e Emacs não são softwares. Eles são filosofias de vida. Eles representam duas visões fundamentalmente opostas de como a mente humana deve interagir com a informação digital e como a máquina deve servir ao seu mestre.

Neste artigo definitivo, vamos viajar de volta aos laboratórios de IA e aos porões universitários dos anos 70 para entender como a escassez e a abundância criaram essas duas ferramentas lendárias. Vamos analisar suas gramáticas, suas falhas e seu renascimento moderno.

Parte 1: Vi - Nascido da Escassez (1976)

O Vi (Visual Editor) foi criado em 1976 por Bill Joy (um gigante que depois fundaria a Sun Microsystems e escreveria grande parte do o TCP/IP do BSD) na Universidade de Berkeley.

O contexto é crucial. Bill Joy não tinha um MacBook Pro com tela Retina. Ele usava um terminal Lear Siegler ADM-3A conectado a um mainframe a quilômetros de distância via um modem de 300 baud.

  • 300 baud: Isso é cerca de 30 caracteres por segundo. Mais lento que a velocidade de leitura humana. Se você rolasse a tela, você via as linhas sendo desenhadas uma por uma, dolorosamente.
  • O Terminal ADM-3A: Esse hardware moldou o software. Ele não tinha setas direcionais separadas. As setas estavam pintadas nas teclas H, J, K, L. Também não tinha a tecla "Esc" separada no canto; ela ficava onde hoje é o "Tab" (muito acessível ao dedo mindinho).

A filosofia do Vi foi moldada por essas limitações físicas extremas: Vim vs Emacs: A Guerra dos Editores

  1. Edição Modal: Para não ter que segurar "Control" ou "Alt" (que enviavam códigos de escape extras e lentos pelo modem), Joy inventou modos.
    • Normal Mode: As teclas são comandos. d deleta, w move.
    • Insert Mode: As teclas são texto.
  2. Concisão Extrema: Você não digita deleteWord, você digita dw. Cada caractere economizado era tempo de modem economizado. O Vi é a linguagem mais densa já criada.
  3. Home Row: Como as setas eram HJKL, você nunca tirava as mãos da posição de digitação principal. Velocidade pura e ergonômica.

Parte 2: Emacs - Nascido da Abundância (1976)

Do outro lado do país, no MIT AI Lab (Laboratório de Inteligência Artificial), Richard Stallman (o pai do Software Livre) e outros hackers trabalhavam em um ambiente muito diferente. Eles tinham as Lisp Machines. Computadores workstation poderosíssimos (para a época), com telas gráficas de alta resolução e teclados espaciais ("Space-cadet keyboard") cheios de teclas modificadoras (Control, Meta, Super, Hyper).

Eles não se importavam com largura de banda; a conexão era local e instantânea. Eles queriam poder absoluto e customização infinita. O Emacs (Editor MACroS) começou como um conjunto de macros para o editor TECO, mas logo se tornou um ambiente onde o próprio editor era o sistema operacional.

A filosofia do Emacs é:

  1. Extensibilidade Infinita (Lisp): O editor é apenas um interpretador da linguagem Lisp. 90% das funções do editor (abrir arquivo, salvar, mover cursor) são escritas em Lisp e podem ser reescritas pelo usuário enquanto o editor roda, sem reiniciar.
  2. Modeless (Sem Modos): Você está sempre digitando. Para dar comandos, você faz "acordes" com as teclas modificadoras (os famosos C-x C-s para salvar). Era como tocar piano.
  3. Kitchen Sink: Tudo deve estar no editor. E-mail, notícias, jogos, psicanalista (M-x doctor).

Parte 3: A Gramática do Vim vs O Ecossistema do Emacs

A Linguagem do Vim: O Poder do Verbo + Objeto

A beleza do Vim (a versão melhorada do Vi, lançada em 1991 por Bram Moolenaar) é que ele tem uma gramática linguística. Você conversa com o editor. Você compõe frases. A estrutura é: [Quantidade] [Ação] [Objeto].

  • Ação (Verbos):
    • d: delete (apagar)
    • c: change (mudar - apagar e entrar em modo de inserção)
    • y: yank (copiar)
    • v: visual select (selecionar)
  • Objeto (Substantivos):
    • w: word (palavra)
    • s: sentence (frase)
    • p: paragraph (parágrafo)
    • i": inside quotes (dentro das aspas)
    • it: inside tag (dentro da tag HTML)

A Mágica: Se você quer "Apagar 3 palavras": 3dw. Se você quer "Mudar o texto dentro das aspas": ci". (Isso é mágico para programadores). Se você quer "Copiar o parágrafo inteiro": yap.

Quando você internaliza essa gramática, a edição flui na velocidade do pensamento. Você não pensa "vou pegar o mouse, selecionar daqui até ali e apertar backspace". Você pensa "Mudar Parágrafo" (cip) e acontece instantaneamente. É uma fusão mente-máquina.

O Ecossistema do Emacs: O Sistema Operacional Lisp

O Emacs não tenta ser o editor de texto mais rápido nos dedos; ele tenta ser o ambiente onde você vive e nunca precisa sair (context switch). Como ele é programável em Lisp, as pessoas escreveram softwares inteiros dentro dele:

  • Magit: A melhor interface para Git já criada. Melhor que qualquer GUI.
  • Org-mode: Este é o "Killer App" do Emacs. Um sistema de organização pessoal, agenda, to-do list, planilha e editor de documentos científicos que supera qualquer software comercial (Notion, Evernote, Excel). Ele suporta "Literate Programming" (rodar blocos de código Python dentro do documento e ver o resultado na linha de baixo).
  • Dired: Um gerenciador de arquivos completo.

A piada clássica é: "O Emacs é um excelente sistema operacional, só falta um bom editor de texto." (Referindo-se à falta de edição modal nativa, embora o Evil Mode resolva isso).


Parte 4: A Curva de Aprendizado e a Dor Física

Existe um gráfico famoso sobre a curva de aprendizado dos editores:

  • Notepad: Uma linha reta horizontal. Você aprende em 1 segundo.
  • Nano: Uma ladeira suave.
  • Vim: Um muro vertical de 90 graus. Você bate a cara e desiste. Mas se escalar, você voa no topo.
  • Emacs: Uma espiral que sobe infinitamente. Você nunca para de aprender e configurar.

O problema do Vim é que ele é hostil aos iniciantes. Abrir o Vim e não saber como sair (:q!) é um rito de passagem e um meme global. Milhões de pessoas pesquisam "How to exit vim" no Stack Overflow todos os anos.

O problema do Emacs é a Lesão por Esforço Repetitivo (LER). O uso excessivo da tecla Control (pressionada com o dedo mindinho esquerdo em contorcionismos como C-x C-c) causou o famoso "Emacs Pinky" em uma geração de programadores. A comunidade teve que adaptar hardware (pedais de pé para Control) ou remapear teclados (Caps Lock como Control) para sobreviver.


Parte 5: A Paz Moderna (Neovim e VS Code)

Hoje, a guerra fria acabou. A resposta foi a síntese.

  1. Neovim: Um fork moderno do Vim que adicionou multitarefa assíncrona, linguagem Lua para configuração e LSP (Language Server Protocol) nativo. Ele trouxe o Vim para o século 21, tornando-o uma IDE poderosa capaz de competir com o VS Code.
  2. Spacemacs / Doom Emacs: São distribuições do Emacs pré-configuradas que usam a interface de teclas do Vim (Evil Mode - Extensible VI Layer).
    • Eles realizam o sonho: "A eficiência modal do Vim com a extensibilidade Lisp do Emacs."
  3. VS Code com Vim Extension: A maioria dos desenvolvedores usa o VS Code, mas instala a extensão de emulação Vim. Eles querem o Intellisense e o Debugger gráfico, mas não abrem mão da navegação HJKL.

Conclusão: Por que aprender algo de 1976?

Por que aprender Latim? Por que aprender a tocar violino? Aprender Vim ou Emacs muda a estrutura do seu cérebro de programador.

  • O Vim te ensina a odiar o desperdício de movimento. Te ensina precisão e composição.
  • O Emacs te ensina que suas ferramentas não são caixas pretas imutáveis; elas são argila moldável que você pode adaptar ao seu fluxo de trabalho.

Mesmo se você usar o VS Code para sempre, passar um mês aprendendo Vim (o vimtutor) vai fazer você nunca mais olhar para o mouse da mesma maneira. E você vai descobrir, com horror, quanto tempo perdeu na vida arrastando aquele cursorzinho branco pela tela para selecionar texto.


Glossário da Guerra

  • Buffer: Em ambos os editores, você não edita arquivos diretamente. Você edita "Buffers", que são cópias do arquivo na memória. Você pode ter buffers que não são arquivos (como um terminal).

  • Yank: No vocabulário do Vi, "Yank" significa Copiar. (O c já estava ocupado por Change). No Emacs, "Yank" significa Colar (Paste) e "Kill" significa Copiar/Recortar. Essa inversão causa confusão eterna.

  • Modal Editing: Paradigma onde o significado da tecla muda dependendo do estado do editor. O oposto de "Modeless".

  • Macros: A capacidade de gravar uma sequência de teclas e repeti-la 1000 vezes. No Vim: qq (grava no registro q), ...ações..., q (para), @q (executa). Poderosíssimo para refatoração.

  • Dot Command (.): No Vim, o ponto repete a última alteração. Se você deletou uma linha (dd), apertar . deleta a próxima.

  • ELisp (Emacs Lisp): O dialeto de Lisp usado para configurar o Emacs.


Apêndice Técnico B: Tabela de Comandos Básicos

| Ação | Vim (Normal Mode) | Emacs (Default) | | :--- | :--- | :--- | | Sair | :q (ou :q! forçado) | C-x C-c | | Salvar | :w | C-x C-s | | Mover Esq/Baixo/Cima/Dir | h j k l | C-b C-n C-p C-f | | Início da Linha | 0 ou ^ | C-a | | Fim da Linha | $ | C-e | | Pesquisar | /texto | C-s texto | | Desfazer (Undo) | u | C-/ ou C-_ | | Refazer (Redo) | C-r | (Complexo...) |

(Nota: C-x significa Segurar Control e apertar X).


Apêndice Técnico C: Configuração (.vimrc vs .emacs)

A alma dos editores está nos arquivos de configuração ("dotfiles").

Exemplo de .vimrc (Vim Script)

vim
" Ativar números de linha
set number
" Destacar a linha atual
set cursorline
" Usar espaços em vez de tabs
set expandtab
set shiftwidth=4
" Mapear jj para sair do modo de inserção (para não buscar o ESC)
inoremap jj <Esc>
" Syntax Highlighting
syntax on
colorscheme gruvbox

Exemplo de .emacs (Elisp)

lisp
;; Remover a barra de ferramentas (ganhar espaço)
(tool-bar-mode -1)
;; Mostrar número de linhas
(global-display-line-numbers-mode)
;; Configurar tema
(load-theme 'doom-one t)
;; Definir uma função customizada
(defun inserir-data ()
  "Insere a data atual."
  (interactive)
  (insert (format-time-string "%Y-%m-%d")))
;; Mapear a função para F5
(global-set-key (kbd "<f5>") 'inserir-data)

Apêndice D: As Facções Religiosas

  1. Church of Emacs: Uma paródia religiosa criada por Richard Stallman.
    • Santo: St. IGNUcius.
    • Pecado: Usar software proprietário.
    • Penitência: Dizer "Vi vi vi" (que é 6-6-6 em numerais romanos).
  2. Cult of Vi: Os puristas.
    • Eles acreditam que qualquer editor que demora mais de 100 milissegundos para abrir é "bloatware".
    • Seguem o princípio KISS (Keep It Simple, Stupid).

Perguntas Frequentes (FAQ)

Q: Qual devo aprender primeiro? R: Aprenda o Vim. A onipresença do Vim é imbatível. Todo servidor Linux no mundo tem o vi instalado por padrão. Se você acessar um servidor remoto via SSH para consertar um problema, o Vim estará lá. O Emacs ou VS Code não. Saber o básico de Vim (i, Esc, :wq) é uma habilidade de sobrevivência para qualquer SysAdmin ou DevOps.

Q: O VS Code matou eles? R: O VS Code capturou 70% do mercado, sim. Mas os 5% que usam Vim/Emacs são geralmente os desenvolvedores mais sêniores e produtivos. Além disso, o VS Code é pesado (Electron/Web). O Vim roda em uma torradeira. Eles coexistirão.

Q: O que é o "Evil Mode" do Emacs? R: É um pacote que emula o Vim dentro do Emacs com perfeição quase absoluta. Muitos consideram o "Emacs com Evil Mode" o melhor editor de texto do mundo, pois combina o melhor motor de edição (Vim) com o melhor sistema operacional (Emacs).


Referências Bibliográficas

  1. O'Reilly Books. "Learning the vi and Vim Editors".
  2. Stallman, Richard. "EMACS: The Extensible, Customizable Display Editor" (Paper de 1981).
  3. VimGolf. Site de desafios de edição.
  4. Org-mode. "Your Life in Plain Text".

Este artigo foi expandido em Dezembro de 2025.

Imagem de tecnologia relacionada ao artigo vim-vs-emacs-guerra-editores-historia