Francisco Javier Palacios PérezFco. Javier Palacios Pérez
Desarrollador de software
¿Por qué Vim? La filosofía de la edición modal

¿Por qué Vim? La filosofía de la edición modal

¿Por qué Vim? La filosofía de la edición modal

¿Por qué Vim? La filosofía de la edición modal

Si estás leyendo esto, probablemente te haya picado la curiosidad sobre Vim. Quizá hayas visto a algún compañero de trabajo editando código a velocidad de vértigo sin tocar el ratón. Quizá hayas escuchado el meme de “cómo salir de Vim”. O quizá simplemente quieres entender por qué tanta gente sigue usando un editor de texto de los años 90 en pleno 2026.

Bienvenido. Este es el inicio de un viaje que cambiará para siempre tu forma de editar texto.

¿Qué es Vim? ¿Y Neovim?

Vim es un editor de texto modal, altamente configurable y extremadamente eficiente. Fue creado por Bram Moolenaar en 1991 como una mejora de vi (1976), el editor estándar de Unix.

Neovim es un fork moderno de Vim (2014) que conserva toda la filosofía original pero añade:

  • Soporte nativo para LSP (Language Server Protocol) - autocompletado, diagnósticos, refactoring
  • Arquitectura moderna con APIs asíncronas
  • Configuración en Lua (además de Vimscript)
  • Mejor rendimiento y mantenibilidad del código
  • Comunidad activa y plugins modernos

En este curso usaremos Neovim porque es el futuro de Vim. Todo lo que aprendas funciona en Vim clásico, pero Neovim te da superpoderes adicionales.

Un poco de historia: vi → Vim → Neovim

1976: vi (Bill Joy)
El editor original de Unix. Diseñado para terminales lentos conectados por líneas telefónicas. La edición modal no era un capricho: era necesidad técnica. No podías enviar cada tecla al servidor en tiempo real.

1991: Vim (Bram Moolenaar)
“Vi IMproved” (vi mejorado). Añadió ventanas, resaltado de sintaxis, plugins, y mil mejoras manteniendo la esencia modal.

2014: Neovim (Comunidad)
Fork de Vim para modernizarlo. Arquitectura asíncrona, LSP nativo, Lua, mejor extensibilidad. Vim y Neovim coexisten: muchos usan Neovim pero ambos son válidos.

2026: LazyVim y distribuciones modernas
Configuraciones preempaquetadas que convierten Neovim en un IDE completo en minutos. Esto es lo que usaremos en este curso.

El paradigma de la edición modal

Esta es la idea que cambiará tu vida como programador: en lugar de tener un único modo donde escribes y navegas mezclado (como VS Code o Sublime), Vim separa radicalmente estos dos conceptos.

Los cuatro modos de Vim

Normal Mode (Modo Normal)
El modo por defecto. No escribes texto, navegas y ejecutas comandos. Aquí pasarás el 80% de tu tiempo. Puedes moverte palabra por palabra, borrar líneas, copiar bloques, buscar, reemplazar… sin tocar el ratón.

Insert Mode (Modo Inserción)
Aquí SÍ escribes texto, como en cualquier editor normal. Pero la clave es: entras, haces UNA edición, y sales. Vim te entrena para hacer cambios atómicos y precisos.

Visual Mode (Modo Visual)
Para seleccionar texto visualmente (como arrastrar con el ratón, pero con el teclado). Puedes seleccionar caracteres, líneas completas o bloques rectangulares (sí, bloques verticales de código).

Command Mode (Modo Comando)
Ejecutas comandos de Vim escribiendo :algo. Aquí guardas archivos (:w), sales (:q), buscas y reemplazas (:s/viejo/nuevo/g), abres archivos, etc.

¿Por qué esto es tan poderoso?

En editores tradicionales, para borrar una palabra haces:

  1. Doble clic para seleccionar la palabra (ratón)
  2. O Ctrl+Shift+→ (tres teclas a la vez)
  3. Backspace o Delete

En Vim:

  1. dw (dos teclas en modo normal)

¿Borrar hasta el final de la línea?

  • VS Code: Shift+End → Backspace (3 teclas + mover mano al ratón si te equivocas)
  • Vim: D (una tecla)

¿Borrar todo dentro de las comillas?

  • VS Code: Doble clic, ajustar selección, Delete (varios movimientos)
  • Vim: di" (tres teclas: delete inside quotes)

La magia no está en los atajos individuales. La magia está en el lenguaje combinatorio.

El lenguaje de Vim: la gramática combinable

Vim no tiene “atajos de teclado”. Vim tiene un lenguaje. Y una vez que aprendes la gramática, puedes combinar conceptos infinitamente.

La estructura básica es:

[count] operator motion

Operators (operadores):

  • d - delete (borrar)
  • c - change (borrar y entrar en modo inserción)
  • y - yank (copiar)
  • v - visual select (seleccionar)

Motions (movimientos):

  • w - word (palabra)
  • $ - end of line (final de línea)
  • i" - inside quotes (dentro de comillas)
  • ap - a paragraph (un párrafo)
  • t. - till . (hasta el punto)

Ejemplos combinados:

  • dw - delete word (borrar palabra)
  • d$ - delete to end of line (borrar hasta final de línea)
  • di" - delete inside quotes (borrar dentro de comillas)
  • cap - change a paragraph (cambiar un párrafo)
  • y3w - yank 3 words (copiar 3 palabras)
  • dt. - delete till . (borrar hasta el punto)

¿Ves el patrón? No memorizas atajos, aprendes un vocabulario. Una vez que sabes que:

  • i( significa “inside parentheses”
  • a{ significa “around braces”
  • c significa “change”

Entonces ci( (change inside parentheses) es obvio. Y da{ (delete around braces) también.

Esto es escalable. Los atajos de teclado normales, no.

Mitos comunes sobre Vim

Antes de continuar, desmontemos algunas ideas erróneas:

❌ “Vim es demasiado difícil”

Realidad: Vim tiene una curva de aprendizaje pronunciada al principio (2-3 días incómodos), pero luego se vuelve exponencialmente más fácil. La mayoría de editores tienen una curva plana: siempre eres igual de “lento”.

Vim es como aprender a tocar guitarra: los primeros acordes son duros, pero una vez que los dominas, puedes tocar miles de canciones. Los atajos tradicionales son como memorizar cada canción nota por nota.

❌ “Vim es solo para terminales / gente ‘old-school’”

Realidad: Neovim en 2026 con LazyVim tiene:

  • LSP (autocompletado, go-to-definition, refactoring)
  • Tree-sitter (resaltado sintáctico avanzado)
  • Telescope (fuzzy finder como Cmd+P de VS Code)
  • Neo-tree (explorador de archivos visual)
  • Integración con Git (como GitLens)
  • Depurador integrado (DAP)
  • Soporte para cualquier lenguaje (TypeScript, Rust, Python, Go…)

Es un IDE completo, no un editor de texto plano.

❌ “No necesito Vim, VS Code es suficiente”

Realidad: Esta es la trampa más común. VS Code es excelente, pero:

  1. Velocidad: Editar con Vim es 2-3x más rápido una vez que lo dominas. No es exageración.
  2. Ergonomía: No necesitas ratón. Tus manos nunca abandonan la fila home del teclado. Adiós dolores de muñeca.
  3. Portabilidad: Vim está en cualquier servidor remoto. SSH a un servidor y puedes editar con las mismas habilidades.
  4. Recursos: Neovim consume 50MB de RAM. VS Code consume 500MB+ (y eso solo al abrir).

Además, existe VSCode Neovim extension si quieres lo mejor de ambos mundos.

❌ “Vim es para puristas que odian la tecnología moderna”

Realidad: GitHub, Google, Meta, Netflix tienen miles de ingenieros usando Vim/Neovim en 2026. ThePrimeagen (ingeniero de Netflix) tiene millones de vistas en YouTube enseñando Neovim. Esto no es nostalgia, es pragmatismo.

¿Por qué aprender Vim en 2026?

Déjame darte razones pragmáticas, no nostálgicas:

1. Velocidad de edición (multiplicador de productividad)

Una vez que dominas Vim, editar código es como pensar a la velocidad de tus dedos. No hay fricción entre “quiero cambiar esto” y “lo he cambiado”.

Ejemplo real: refactorizar 20 llamadas a una función en un archivo.

  • VS Code: Buscar, Cmd+D para cada match, editar (2 minutos, con cuidado)
  • Vim: :%s/oldFunc/newFunc/gc (10 segundos, con confirmación visual)

2. Ergonomía y salud

Como programador, pasarás más de 30000 horas de tu vida editando código. ¿Quieres pasarlas moviendo la mano al ratón 500 veces al día?

Vim te mantiene en la home row (asdfghjkl). Menos movimiento = menos fatiga = menos riesgo de lesiones por esfuerzo repetitivo.

3. Trabaja en CUALQUIER entorno

SSH a un servidor de producción sin interfaz gráfica. ¿Tu VS Code funciona ahí? No.

Vim está en todas partes: servidores Linux, contenedores Docker, Raspberry Pi, tu Mac, tu PC con Windows… Aprendes una vez, usas en todos lados.

4. Combinaciones con la terminal

Vim no es solo un editor. Es parte de la filosofía Unix:

# Ver solo las líneas con "error" de un archivo
vim +'g/error/p' archivo.log

# Ordenar líneas alfabéticamente desde Vim
:%!sort

# Formatear JSON
:%!jq .

Vim se integra con grep, sed, awk, git, tmux… Es parte de un ecosistema.

5. Una vez que lo aprendes, es para toda la vida

Los atajos de VS Code cambian con cada versión. Los plugins se rompen. La configuración se obsoletiza.

Vim tiene 30 años y los comandos siguen igual. Lo que aprendas ahora funcionará en 2030, 2040, 2050… Aprende Vim una vez, úsalo para siempre.

Casos de uso reales

Desarrollo web (React, Vue, Svelte)
LSP para TypeScript, autocompletado, linting con ESLint, formateo con Prettier, integración con Git, debugger para Node.js. Todo desde Neovim.

Backend (Python, Go, Rust)
LSP para cada lenguaje, testing con pytest/go test, DAP para debugging, integración con Docker/Kubernetes.

Data Science
Notebooks Jupyter dentro de Neovim (Jupytext), Pandas, NumPy con autocompletado, visualización de gráficos.

DevOps / SRE
Editar archivos en servidores remotos, scripts Bash, configuraciones YAML/JSON, IaC con Terraform.

Escritura técnica
Markdown con preview, spell checking, gramática, integración con Pandoc para generar PDFs.

Vim vs editores modernos (2026)

CaracterísticaVim/NeovimVS CodeIntelliJ
Velocidad edición⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡
Consumo RAM50MB500MB+1GB+
LSP / Autocompletado✅ Nativo✅ Nativo✅ Nativo
Personalización⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡
Curva de aprendizajePronunciadaSuaveSuave
Entornos remotos (SSH)⚡⚡⚡⚡⚡⚡ (limitado)❌
Ergonomía (sin ratón)⚡⚡⚡⚡⚡⚡ (con extensiones)⚡
Ecosistema plugins⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡
Gratis y open source✅✅❌ (Community sí)
Estabilidad configuración⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡

Veredicto: Vim no es “mejor” en todo, pero para edición pura de texto y código, no tiene rival. Para proyectos gigantes con muchas herramientas integradas, IntelliJ brilla. VS Code es el intermedio accesible.

Muchos profesionales usan Neovim para edición rápida + IntelliJ/VS Code para debugging complejo. O simplemente Neovim + extensiones para todo.

¿Es Vim para ti?

Vim es para ti si:

  • ✅ Pasas más de 4 horas al día editando código
  • ✅ Quieres ser más eficiente a largo plazo (aunque duela al principio)
  • ✅ Te gusta optimizar tus herramientas
  • ✅ Trabajas con servidores remotos o Docker
  • ✅ Quieres una herramienta que dure décadas

Vim NO es para ti si:

  • ❌ Solo programas ocasionalmente (1-2 horas a la semana)
  • ❌ No tienes paciencia para 1-2 semanas de incomodidad inicial
  • ❌ Solo trabajas en proyectos visuales (diseño UI/UX, no código)
  • ❌ Necesitas resultados inmediatos sin inversión de tiempo

Próximos pasos

En la siguiente lección instalaremos Neovim + LazyVim en tu sistema. LazyVim es una configuración pre-hecha que te da un IDE moderno en 5 minutos, sin necesidad de configurar nada manualmente.

Después aprenderemos a sobrevivir en Vim: cómo abrir archivos, moverte, editar, guardar, y salir (sí, el famoso :q que se ha vuelto meme).

En solo 3-4 lecciones ya estarás editando código de verdad. Y en 2 semanas, serás más rápido que con tu editor actual. Te lo prometo.

Conceptos clave de esta lección

  • Vim es un editor modal (1991), Neovim es su fork moderno (2014)
  • La edición modal separa navegación (Normal) de escritura (Insert) de selección (Visual)
  • Vim tiene un lenguaje combinable: operators + motions = infinitas combinaciones
  • No son atajos, es gramática: di" (delete inside quotes) es obvio si conoces la sintaxis
  • Vim NO es “old-school”: con LazyVim tienes LSP, fuzzy finder, debugger, Git integration… un IDE completo
  • La curva de aprendizaje es real, pero la inversión vale la pena si pasas horas editando código
  • Vim es portátil (funciona en servidores), eficiente (50MB RAM), ergonómico (no necesitas ratón)

¿Listo para instalar Neovim y entrar en la Matrix? Nos vemos en la siguiente lección.

¡Nunca dejes de programar!