← Claude Code Hub
✦ Tip #152 Aug 1, 2026

Vim mode en Claude Code: cómo dejar de estirar el meñique hasta el Escape

Claude Code lleva un vim mode completo dentro del prompt, con motions y text objects. Y desde hace unas versiones puedes dejar de ir al Escape en cada frase, aunque la letra pequeña tiene cuatro reglas que no vas a adivinar.

Vim mode en Claude Code: a la izquierda la tecla Esc como el peaje de siempre, fuera de la fila base, a la derecha jj bajo los dedos con el JSON de vimInsertModeRemaps, y abajo las tres reglas de la letra pequena: dos caracteres exactos con Esc como unico destino, la ventana de un segundo, y que un repositorio clonado no puede remapearte el teclado

TL;DR Claude Code tiene vim mode de verdad (NORMAL, INSERT, VISUAL, motions, text objects) y se enciende con "editorMode": "vim". Lo que casi nadie sabe es que desde la v2.1.208 puedes mapear una secuencia de dos teclas a Escape con "vimInsertModeRemaps": { "jj": "<Esc>" }. Yo llevaba meses con vim mode encendido y sin esto, estirando el meñique en cada frase. Ojo a la regla del segundo: si tardas más de uno entre las dos teclas, las dos se quedan escritas, así que puedes seguir tecleando palabras con jj dentro.

Si vienes de vim, la primera hora en Claude Code duele de una forma muy concreta. Escribes el prompt, quieres corregir una palabra tres atrás, y tu mano ya ha hecho Esc antes de que tu cabeza decida nada. Solo que ahí no pasaba nada.

Sí pasa. Hay un vim mode completo dentro del prompt, y lleva ahí más de lo que parece.

Encenderlo

// ~/.claude/settings.json
{
  "editorMode": "vim"
}

También desde /config, en Editor mode, si prefieres no tocar el fichero. A partir de ahí Esc te lleva a NORMAL, e i I a A o O te devuelven a INSERT como esperas.

Lo que casi nadie tiene puesto

El meñique al Escape es el peaje de vim en cualquier sitio, y por eso medio mundo mapea jj. En Claude Code se puede desde la v2.1.208:

{
  "editorMode": "vim",
  "vimInsertModeRemaps": { "jj": "<Esc>" }
}

Y aquí es donde conviene leer la letra pequeña, porque tiene cuatro reglas que no vas a adivinar:

1. Dos caracteres imprimibles, ni uno más ni uno menos

La clave tiene que medir exactamente dos. Una entrada más larga o más corta se ignora en silencio, sin avisarte de nada.

2. "<Esc>" es el único destino posible

No es un sistema de mapeos general. Puedes elegir qué dos teclas te llevan a NORMAL, y nada más. Cualquier otro destino se descarta.

3. La ventana de un segundo

Al teclear la primera letra se escribe normal, como cualquier carácter. Si pulsas la segunda antes de un segundo, Claude Code borra la que estaba pendiente y te pasa a NORMAL, sin dejar ninguna de las dos en el prompt. Si tardas más, o si pulsas otra tecla, las dos se quedan como texto literal.

Eso último es lo que hace que la cosa sea usable: puedes seguir escribiendo palabras que llevan jj dentro, solo tienes que hacer una pausa mínima entre las dos.

4. Un repositorio no puede remapearte el teclado

Este ajuste solo se lee de tus settings de usuario, del flag --settings y de los managed settings. Lo que haya en el .claude/settings.json de un proyecto se ignora. Es deliberado: si no fuese así, clonar un repo cualquiera podría cambiarte lo que hacen tus teclas.

Lo que hay dentro de NORMAL

No es un vim de mentira con cuatro flechas. Esta es la parte que más sorprende:

Grupo Comandos
Movimiento h j k l · w e b · 0 $ ^ · gg G
Saltar a carácter f{c} F{c} t{c} T{c} · ; y , para repetir
Borrar y cambiar x dd D dw de db · cc C cw ce cb · s S
Copiar y pegar yy Y yw ye yb · p P
Otros >> << para indentar · J unir líneas · u deshacer · . repetir
Text objects iw aw iW aW · i" a" · i' a' · i( a( · i[ a[ · i{ a{

Con v entras en VISUAL por caracteres y con V por líneas, y los operadores actúan sobre la selección.

Dos detalles que se agradecen cuando llevas un rato: en NORMAL, si el cursor ya no puede moverse más arriba o más abajo, j y k pasan a navegar el historial de comandos en vez de quedarse quietos. Y / abre la búsqueda inversa del historial, lo mismo que Ctrl+R.

Requisitos y avisos de versión

vimInsertModeRemaps pide v2.1.208 o superior. Un par de cosas más son recientes y conviene saberlo si algo no te responde: s y S llegaron en la v2.1.211, y . no repetía bien los operadores de cambio (cw, cc) ni los pegados hasta la v2.1.216. Comprueba con claude --version.

Si vienes de leer sobre teclas en Claude Code, el otro sitio donde la gente se atasca es el salto de línea con Shift+Enter, que depende del terminal y tiene su propia solución. Y si el teclado no es lo tuyo, existe el modo de dictado por voz.

Documentación oficial: Interactive mode · Settings

Guía gratuita

Los 51 esenciales, en PDF.

Una página por tip. Cinco capítulos. Lo que de verdad uso a diario en producción — sin teoría, sin humo.

  • I. Empieza bien 10 tips
  • II. Conciencia 3 tips
  • III. Maestría 22 tips
  • IV. Autonomía 10 tips
  • V. Comparativa 6 tips
¿Eres desarrollador/a Web profesional?

Recibirás la guía por email · Te unes a la newsletter Gravitas · Cancela cuando quieras

de 51
#

Wmedia · 51 Tips
Guía gratuita · 51 tips · 5 capítulos

Los 51 esenciales, en PDF.

¿Eres desarrollador/a Web profesional? · Cancela cuando quieras