Soy un usuario de vim hace mas de 10 años que uso vim y en todos lados que puedo uso las vim-keybindings: h,j,k,l para navegar incluso en un navegador web usaba, ahora uso falkon y no tengo esa posibilidad.
El secreto para un vimmer es no aprender Emacs, sino secuestrarlo con Evil Mode. Emacs es solo un motor de renderizado de texto escrito en C, rodeado de un sistema operativo escrito en Lisp. Vas a usar Vim dentro de ese sistema operativo.
Acá tenés el machete definitivo, estructurado y con la jerga justa para que lo puedas publicar. Está pensado para que lo copies, le pegues un poco de formato en Markdown (ya viene listo) y lo lances.
Llevás 10 años en Vim. Tu cerebro procesa ciw sin pensar. Si abrís Emacs vanilla y te obligan a usar C-p y C-n, te va a dar un ataque de pánico.
La buena noticia: No tenés que aprender a editar texto de nuevo. Emacs tiene un modo llamado Evil (Extensible VI Layer) que emula Vim casi perfectamente. Pero Emacs no es un editor, es un Lisp Machine. El objetivo de este machete no es enseñarte a editar (ya sabés), sino enseñarte a manejar la máquina.
Antes de tocar una sola tecla, instalá Doom Emacs o Spacemacs. Ambos vienen con Evil mode configurado de fábrica, junto con un ecosistema moderno. Si te gusta la velocidad y la minimalidad, andá por Doom. Si venís de Spacemacs (o usás mucho el SPC como leader), andá por Spacemacs. Para este machete, asumimos que usás Doom (usa SPC como Leader key).
Tu cerebro de Vim tiene que reasignar estos conceptos. No los llames como en Vim, vas a confundirte cuando busques ayuda.
| Concepto Vim | Concepto Emacs | Explicación |
|---|---|---|
| Split | Window | Una sección dentro de un marco. (C-w v sigue funcionando en Evil). |
| Tab / Buffer | Buffer | Un archivo abierto en memoria (idéntico a Vim). |
| Tab page | Frame | ¡Ojo! Un Frame en Emacs es literalmente una ventana nueva del sistema operativo. |
| Command line | Minibuffer | La línea de abajo. Es interactiva, busca mientras escribís, es magia pura. |
| Plugin | Package | Módulos de Elisp. |
| .vimrc | init.el (o config.el) | Tu archivo de configuración. |
Evil se encarga del modo normal, insert, visual. Pero hay 4 teclas de Emacs que vas a usar cientos de veces por día para interactuar con el sistema:
C-g (Control + G): Es el <Esc> universal de Emacs. Si algo se trabó, si cancelaste un comando, si el minibuffer no se cierra: apretá C-g como loco. Es tu botón de pánico.M-x (Alt + x): Ejecuta cualquier comando por su nombre. Es el : de Vim, pero más poderoso. En Doom, usá SPC : o SPC SPC (que llama a Vertico/Consult, un fuzzer de comandos brutal).C-h: El prefijo de Ayuda. Es la documentación más increíble que existe.SPC (Espacio): Tu Leader key (asumiendo Doom/Spacemacs).En Vim, usás :help. En Emacs, la ayuda está hyperlinkeada y es navegable como una web.
C-h k + tecla: Te dice qué hace exactamente esa tecla y qué función de Elisp ejecuta.C-h f + nombre de función: Te muestra la documentación de la función.C-h v + variable: Te muestra qué hace una variable y su valor actual.C-h m: Te muestra todos los atajos disponibles para el modo en el que estás parado. (Groso para descubrir atajos de Dired o Magit).Emacs tiene un administrador de archivos integrado llamado Dired. Al principio parece anticuado, pero es el administrador de archivos más rápido que vas a tocar.
Abrís un directorio (SPC f f o C-x d) y entrás a Dired. Podés moverte con j/k (Evil), pero las acciones son letras sueltas:
C (Mayúscula): Copiar archivo.R: Renombrar/Mover archivo.D: Borrar archivo (marca para borrar).x: Ejecutar las marcas de borrado.+: Crear directorio.RET (Enter): Abrir archivo/directorio.^: Ir al directorio padre.m: Marcar archivo.u: Desmarcar archivo.U: Desmarcar todos.q: Salir de Dired.Magit es, por sí solo, la razón por la que muchos vimmers migran a Emacs. No existe nada parecido en Vim (ni en Neovim). Es una interfaz para Git por paneles.
Entrás con SPC g g (o M-x magit-status).
s: Stagear un archivo/hunk (mirá el cursor, no la letra a como en Vim).u: Unstage.c c: Hacer un commit (se abre un buffer nuevo para el mensaje, cerrás con C-c C-c).P p: Push.F p: Pull.d d: Diff de lo que tenés stageado.l l: Ver el log.z: Stash.q: Cerrar Magit.Nota: En Magit no usás :wq. Usás C-c C-c para confirmar acciones y C-g o q para cancelar.
Org-mode es Markdown con esteroides, vienen con Emacs, y permite hacer agendas, tablas dinámicas, y exportar a PDF/HTML/LaTeX.
TAB: Fold/Unfold de subtítulos.S-TAB: Fold/Unfold global.S-<RIGHT/LEFT>: Cambiar nivel de heading (Promote/Demote).S-<UP/DOWN>: Mover subtítulos enteros para arriba/abajo.C-c C-t: Ciclar el estado de un TODO (TODO -> DONE -> etc).C-c C-e: Abrir el menú de Exportar (a HTML, Markdown, PDF, etc).Olvidate de los snippets de Vim. En Emacs moderno (Doom), usás sistemas basados en el minibuffer (Vertico) o inline (Corfu).
C-n / C-p para bajar y subir en las sugerencias.C-n / C-p y confirmás con RET.SPC s i: Buscar símbolos en el proyecto (imenu).SPC s p: Buscar en el proyecto (Proyecto completo, usa rg/fd por debajo).Como ya sabés, C-w funciona igual en Evil mode. Pero necesitás saber manejar los Buffers como un usuario de Emacs.
SPC b b: Listar todos los buffers abiertos (Buffer List).SPC b k: Matar (cerrar) el buffer actual. (¡Acostúmbrate a cerrar buffers, Emacs no cierra nada solo!).SPC b d: Cerrar el buffer y la ventana.SPC w v: Split vertical.SPC w s: Split horizontal.SPC w d: Cerrar ventana actual (like C-w c).En Vim usás Vimscript (o Lua en Neovim). En Emacs, todo es Emacs Lisp (Elisp). Tu init.el es código que se ejecuta al arranque.
En Doom Emacs, editás tu ~/.doom.d/config.el.
La forma moderna de configurar es con la macro use-package.
Ejemplo de cómo se instala y configura un paquete:
(use-package python-mode
:ensure t ; Asegura que se baje de internet
:hook (python-ts-mode . lsp-deferred) ; Arranca LSP cuando abro un python
:config
(setq python-indent-offset 4)) ; Configuración específica
Para aplicar cambios en tu configuración en caliente: SPC h r r (Doom reload).
C-g tres veces seguidas.SPC SPC y escribí partes del comando.C-h m.SPC t s (toggle syntax highlighting) o SPC w = (balancear ventanas).q casi siempre funciona para cerrar paneles especiales en Emacs. Si no, C-g y después SPC q q (cerrar Emacs).Podés cerrar el machete con algo así:
“Al principio Emacs se siente como aprender a conducir un tractor espacial. Te preguntás por qué tanto lío si tu Vim ya te lleva al trabajo. Pero al mes de usar Magit y Org-mode, de entender que el minibuffer es infinitamente superior a la command line de Vim, y de darte cuenta de que podés reescribir cualquier parte del editor en tiempo real con Elisp… vas a entender por qué Richard Stallman sigue usando su fork desde 1975. Da la bienvenida a la Iglesia de Emacs.”
Consejos de edición para tu blog:
Te armé un cheatsheet completo en canvas listo para publicar en tu blog. Está estructurado específicamente para alguien con +10 años en Vim, no para principiantes generales — o sea, traduce el modelo mental Vim → Emacs en vez de listar teclas sueltas.
Incluye:
Si querés, puedo hacer una segunda versión “nivel power-user” con:
Eso suele ser lo que convierte a un usuario Vim en alguien productivo en Emacs en ~1 semana.
Como usuario de Vim con más de 10 años de experiencia, tu memoria muscular está forjada en el infierno de los atajos modales. Spacemacs es una distribución de Emacs diseñada específicamente para personas como tú: combina el poder infinito de Emacs con la filosofía de Vim a través de Evil Mode. Aquí tenés la guía definitiva para dominarla.
mindmap
root((Emacs para Vimmers))
Spacemacs
:Ventajas
Sistema de capas intuitivo
Comunidad activa
Integración Evil nativa
:Desventajas
Puede ser lento
Menos actualizado que Doom
Doom Emacs
:Ventajas
Rendimiento superior
Configuración moderna
Ecosistema pulido
:Desventajas
Curva de aprendizaje inicial
Más manual
Vanilla + Evil
:Ventajas
Control total
Ligero
:Desventajas
Configuración desde cero
Tiempo invertido alto
Spacemacs es una distribución de Emacs que viene preconfigurada con un sistema de capas (layers) que simplifican enormemente la configuración. Para un vimmer, la característica más importante es que Evil Mode (la emulación de Vim) viene habilitada por defecto【turn0search1】. No necesitas pelear con los atajos de Emacs vanilla; tu hjkl, tus modos, tus macros: todo funciona desde el minuto uno.
Spacemacs organiza funcionalidades en capas independientes. En lugar de configurar cada paquete individualmente, activás una capa (ej: python, git, org) y Spacemacs se encarga de instalar, configurar y asociar los atajos correctos de Evil para todas las herramientas relacionadas.
Tanto Spacemacs como Doom Emacs son las dos distribuciones más populares para usuarios de Vim【turn0search5】. Ambas son excelentes, pero tienen filosofías diferentes.
| Característica | Spacemacs | Doom Emacs | Veredicto para Vimmers |
|---|---|---|---|
| Filosofía | Configuración declarativa mediante capas | Configuración manual pero asistida | Spacemacs es más “plug & play” |
| Rendimiento | Puede ser más lento, especialmente al inicio【turn0search6】 | Optimizado para velocidad, compilado con herramientas modernas | Doom es significativamente más rápido |
| Actualización | Menos activo en los últimos años【turn0search3】 | Desarrollo muy activo, cambios diarios【turn0search0】 | Doom tiene mejor soporte a largo plazo |
| Documentación | Excelente, con tutoriales integrados | Buena, pero más dispersa | Spacemacs gana en docs para principiantes |
| Evil Mode | Integrado por defecto, con evil-collection completo |
Integrado por defecto, con binds muy pulidos | Ambos excelentes, Doom quizás más consistente |
| Ideal para | Quienes prefieren un sistema preconfiguro y estable | Quienes buscan rendimiento y control fino | Depende de tu prioridad: conveniencia vs velocidad |
💡 Recomendación personal: Si venís de Vim y querés la experiencia más fluida y rápida, andá por Doom Emacs【turn0search6】. Si preferís menos configuración manual y un sistema más guiado, Spacemacs sigue siendo una opción sólida【turn0search5】.
# Clonar Spacemacs
git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d
# Iniciar Emacs (se descargará dependencias la primera vez)
emacs
Al primer inicio, Spacemacs te preguntará tu estilo de edición:
vim para habilitar Evil Mode por defecto.~/.emacs.d/
├── layers/ # Tus capas personalizadas
├── private/ # Configuración personal
├── core/ # Núcleo de Spacemacs
└── layers/+email/ # Ejemplo de capa de email
Spacemacs usa la barra espaciadora (SPC) como tecla líder (leader key), similar a <Space> en Vim. Acá van los más importantes:
| Categoría | Atajo | Acción |
|---|---|---|
| Archivos | SPC f f |
Encontrar archivo (fuzzy finder) |
SPC f s |
Guardar archivo | |
SPC f R |
Renombrar archivo actual | |
| Buffers | SPC b b |
Listar/alternar buffers |
SPC b k |
Cerrar buffer actual | |
| Ventanas | SPC w v |
Split vertical |
SPC w s |
Split horizontal | |
SPC w d |
Cerrar ventana actual | |
| Git (Magit) | SPC g s |
Status de git (¡Magit!) |
SPC g c |
Commit | |
| Búsqueda | SPC s s |
Buscar en proyecto (ripgrep) |
SPC s p |
Buscar en proyecto (con preview) | |
| Ayuda | SPC h d f |
Descripción de función |
SPC h d k |
Descripción de tecla | |
| Org-mode | SPC a o |
Abrir agenda de org |
SPC a c |
Capturar tarea | |
| Emacs General | SPC SPC |
Ejecutar comando (M-x) |
SPC q q |
Salir de Emacs |
~/.spacemacsTu archivo de configuración principal es ~/.spacemacs. Acá definís qué capas activar y ajustes globales.
;; Ejemplo de configuración básica
(defun dotspacemacs/layers ()
(setq-default
dotspacemacs-distribution 'spacemacs
dotspacemacs-configuration-layers
'(
;; Capas esenciales para un vimmer
(vim :variables vim-style-delimiters t)
(auto-completion :variables auto-completion-enable-sort-by-usage t)
(git :variables git-magit-status-fullscreen t)
org
python
javascript
;; Capas de UI
(theming :variables theming-modifications
'((spacemacs-theme :colors
("bg1" "#1a1b26")
("fg1" "#a9b1d6")))))))
;; En tu .spacemacs, capa vim
(setq-default dotspacemacs-configuration-layers
'(
vim ;; Evil mode + bindings de Vim
(vim :variables
vim-style-delimiters t ;; Resaltar delimitadores
vim-style-visual-line t) ;; Movimientos visual-line
evil-snipe ;; Como sneak/swap para Vim
(evil-snipe :variables evil-snipe-enable-alternate-f-and-t-bindings t)))
Spacemacs usa evil-collection para proporcionar bindings de Evil para casi todos los modos de Emacs【turn0search7】. Podés personalizar esto:
;; En tu .spacemacs
(defun dotspacemacs/user-config ()
;; Hacer que 'q' cierre más buffers especiales
(with-eval-after-load 'evil
(define-key evil-normal-state-map (kbd "q") 'kill-current-buffer))
;; Configurar evil-snipe (búsqueda de 2 caracteres)
(setq evil-snipe-scope 'line
evil-snipe-repeat-scope 'whole-buffer))
;; Optimizaciones para hacer Spacemacs más rápido
(setq-default
dotspacemacs-maximized-at-startup t
dotspacemacs-fullscreen-at-startup nil
dotspacemacs-large-file-size 10 ;; MB
dotspacemacs-auto-save-file-location 'cache
dotspacemacs-enable-persistent-server t) ;; Servidor en segundo plano
¿Por qué considerarla?
use-package de forma más eficiente.Instalación rápida:
git clone --depth 1 https://github.com/doomemacs/doomemacs ~/.config/emacs
~/.config/emacs/bin/doom install
Ventajas:
Desventajas:
Ejemplo de init.el minimal para Evil:
;; Instalar Evil y evil-collection
(use-package evil
:ensure t
:init
(setq evil-want-keybinding nil)
:config
(evil-mode 1))
(use-package evil-collection
:after evil
:ensure t
:config
(evil-collection-init))
A pesar de lo que puedas escuchar, Emacs no está muriendo【turn0search0】. Con Emacs 30 en desarrollo y una comunidad activa, sigue siendo una herramienta poderosa. Las estadísticas de uso muestran que:
flowchart LR
A[Vimmer Experimentado] --> B{¿Prefieres control<br/>o velocidad?}
B -- Control total --> C[Emacs Vanilla + Evil]
B -- Velocidad --> D[Doom Emacs]
B -- Equilibrio --> E[Spacemacs]
C --> F[2-3 semanas<br/>configurando]
D --> G[1 semana<br/>productivo]
E --> H[2 semanas<br/>aprendiendo capas]
F --> I[Master de Emacs]
G --> I
H --> I
SPC f f, SPC b b, SPC w v).SPC a c para capturar).python, javascript, org, git.SPC s s para ripgrep.| Problema | Solución |
|---|---|
| Spacemacs es muy lento | Probá Doom Emacs, o desactivá capas no usadas. |
| No me gustan los atajos | Personalizá ~/.spacemacs o config.el en Doom. |
| Evil no funciona en algún modo | Verificá que evil-collection esté habilitado【turn0search7】. |
| Quiero usar Vim temporalmente | Usá SPC o para abrir terminal con Vim, o evil-mode para cambiar. |
| Dired es raro | Configurá dired-single para que se abra en buffer actual. |
Para un vimmer experimentado, Emacs con Evil Mode no es un editor, es un sistema operativo para desarrollo. Spacemacs es una excelente puerta de entrada, pero Doom Emacs oficia como la opción más equilibrada entre rendimiento y funcionalidad en 2026【turn0search6】【turn0search13】.
⚡ Consejo para tu blog: No vendas Emacs como “un editor de texto”. Vendelo como “un entorno de desarrollo programable donde podés escribir código en Lisp para extender infinitamente tu editor”. Eso es lo que atrae a vimmers: control absoluto.
Tu journey como vimmer a Emacs debería ser:
Con esta guía, tenés todo lo necesario para escribir un artículo completo y moderno en tu blog. ¡La comunidad de Emacs necesita más vimmers que aporten su perspectiva modalista!