La gramática de Vim (el superpoder)
Operadores + mociones + objetos de texto: la fórmula componible que convierte un puñado de teclas en miles de ediciones precisas. Esta es LA lección.
Si solo aprendes una cosa de todo el Nivel 0, que sea esta. La verdadera potencia de Neovim no está en memorizar atajos, sino en un lenguaje: cada edición es una frase con un verbo y un objeto.
- La fórmula
operador + mociónyoperador + objeto de texto. - Los operadores y objetos de texto esenciales.
- Componer ediciones nuevas que nunca “memorizaste”.
- Pensar la edición como un idioma, no como una lista de trucos.
La fórmula
Casi toda edición en Neovim sigue una de estas dos estructuras:
[conteo] operador moción → verbo + a dónde
[conteo] operador objeto-de-texto → verbo + sobre qué
Es literalmente gramática: un verbo (qué hacer) y un complemento (sobre qué texto). Aprende las piezas por separado y se combinan solas.
flowchart LR Op["Operador<br/>(verbo)"] --> Tgt["Moción u objeto<br/>(complemento)"] Tgt --> Act["Acción precisa"] subgraph Ejemplos E1["ciw cambia la palabra"] E2["di( borra dentro de parentesis"] E3["yap copia el parrafo"] end style Op fill:#cba6f7,color:#11111b style Tgt fill:#89b4fa,color:#11111b style Act fill:#a6e3a1,color:#11111b
Los operadores (verbos)
| Operador | Significado |
|---|---|
d |
delete — borrar |
c |
change — borrar y entrar en Insertar |
y |
yank — copiar |
> / < |
indentar / desindentar |
= |
auto-indentar |
gu / gU |
a minúsculas / MAYÚSCULAS |
gc |
comentar (con plugin/nativo) |
Un operador por sí solo no hace nada: espera un complemento. d seguido de w borra hasta la siguiente palabra. d seguido de $ borra hasta el final de línea.
Operador + moción
Combina cualquier operador con cualquier movimiento de la lección anterior:
dd borra la línea, yy la copia, >> la indenta, gcc la comenta. Repetir el operador lo aplica a la línea actual completa.
Objetos de texto (la joya de la corona)
Aquí está la diferencia real con cualquier otro editor. Un objeto de texto describe una región semántica: una palabra, lo que hay entre comillas, un bloque, una etiqueta HTML. Se usan con i (inner, interior) o a (a, incluye delimitadores).
| Objeto | Selecciona |
|---|---|
iw / aw |
palabra (inner / con espacio) |
i" / a" |
dentro de comillas / con comillas |
i( i) ib |
dentro de paréntesis |
i{ i} iB |
dentro de llaves |
i[ / i< |
dentro de corchetes / angulares |
it / at |
dentro de etiqueta HTML/JSX / etiqueta completa |
ip / ap |
párrafo |
Ahora la magia: combina operador + objeto de texto. No importa dónde esté el cursor dentro del objeto, funciona igual:
Deja de leer ci" como “c-i-comilla”. Léelo como una frase: “change inside quotes” — cambia lo que hay entre comillas. daw = “delete a word”. yi( = “yank inside parens”. Cuando pienses en inglés-verbo así, dejarás de memorizar y empezarás a improvisar ediciones que nunca viste. Ese es el nivel dios de la edición.
Conteos y repetición
Todo se compone aún más con números y con .:
3dw → borra 3 palabras
2ci( → (raro pero válido) cambia contenido de 2 niveles
d2ap → borra 2 párrafos con su espacio
Y recuerda .: haz ciw para cambiar una palabra, escribe la nueva, pulsa Esc, muévete a otra palabra con w y pulsa . para repetir el cambio. Con n (buscar) + . refactorizas ocurrencias a mano a toda velocidad.
Tu chuleta mental
Piezas que, combinadas, dan miles de ediciones:
VERBOS: d c y > < = gu gU gc
MOCIONES: w b e 0 $ ^ f{x} t{x} /texto % j k
OBJETOS: iw aw i" a" i( a( i{ a{ it at ip ap
Cualquier verbo × cualquier moción/objeto = una acción válida. No hay que memorizar la tabla de combinaciones: emerge de las piezas.
Con un archivo de código abierto, resuelve cada tarea con una sola frase de edición:
- Renombra una variable (cursor encima) →
ciwnuevoNombre Esc. - Cambia el texto de un string → cursor dentro,
ci". - Borra todos los argumentos de una llamada → cursor dentro de los paréntesis,
di(. - Copia un bloque
{ }entero →ya{. - Comenta un párrafo →
gcap.
Cuando estas cinco te salgan sin pensar, has terminado el Nivel 0. Pasa a construir tu config.