← Claude Code Hub
✦ Tip #150 Jul 30, 2026

Salto de línea en Claude Code: por qué Shift+Enter te envía el prompt, y la tecla que sí funciona siempre

Pulsas Shift+Enter para bajar una línea y Claude Code te envía el prompt a medias. No es culpa tuya ni un fallo, y hay una tecla que no falla nunca.

Salto de línea en Claude Code: Shift+Enter depende del terminal mientras que Ctrl+J funciona siempre sin configurar nada, con los tres grupos de terminales (Ghostty, Kitty, iTerm2, WezTerm, Warp, Terminal de Apple y Windows Terminal van solos; VS Code, Cursor, Devin Desktop, Alacritty y Zed necesitan /terminal-setup; en gnome-terminal y los IDEs de JetBrains no existe)

TL;DR Ctrl+J mete un salto de línea en cualquier terminal, sin configurar nada. Es el atajo por defecto de la acción chat:newline. Shift+Enter es el que depende del terminal: en Ghostty, Kitty, iTerm2, WezTerm, Warp, Terminal de Apple y Windows Terminal va solo; en VS Code, Cursor, Alacritty y Zed hay que lanzar /terminal-setup una vez; y en gnome-terminal y los IDEs de JetBrains no existe y no va a existir.

Escribes un prompt largo, quieres bajar una línea, pulsas Shift+Enter y Claude Code te lo envía a medias. Buscas el problema y encuentras un issue de GitHub abierto, tres hilos de Reddit y un ticket en el YouTrack de JetBrains pidiendo la función.

Todos están peleándose con la tecla equivocada.

Ctrl+J, y ya está

Ctrl+J          salto de línea, en cualquier terminal, sin configurar nada
\ + Enter       lo mismo, si prefieres teclearlo
Enter           envía el prompt

Ctrl+J no es un truco ni un apaño. Es el atajo por defecto de la acción chat:newline, igual que Enter es el de chat:submit. Funciona en todos los terminales porque no depende del terminal: es una tecla de control de toda la vida, no una combinación que el emulador tenga que saber codificar.

Shift+Enter es lo contrario. Para que llegue a Claude Code, tu terminal tiene que distinguirlo de un Enter normal, y muchos no lo hacen.

Qué hace tu terminal con Shift+Enter

Terminal Shift+Enter para salto de línea
Ghostty, Kitty, iTerm2, WezTerm, Warp, Terminal de Apple, Windows Terminal Funciona sin tocar nada
VS Code, Cursor, Devin Desktop, Alacritty, Zed Lanza /terminal-setup una vez
gnome-terminal, IDEs de JetBrains (IntelliJ, PyCharm, Android Studio) No está disponible. Usa Ctrl+J o \ + Enter

Si trabajas en Claude Code dentro de JetBrains, esa última fila te ahorra la tarde. No es que lo tengas mal configurado: no se puede.

/terminal-setup, solo para el grupo de en medio

En VS Code, Cursor, Devin Desktop, Alacritty y Zed, /terminal-setup escribe el atajo en el fichero de configuración del terminal. La primera vez responde algo así:

Installed VSCode terminal Shift+Enter key binding

Y si ya estaba puesto, te lo dice y no toca nada:

VSCode terminal Shift+Enter key binding already configured

Dos avisos que valen la tarde:

Lánzalo en el terminal de verdad, no dentro de tmux ni de screen. Necesita escribir en la configuración del terminal anfitrión, y desde dentro del multiplexor no llega.

En VS Code, Cursor y Devin toca dos ajustes más del editor. Pone terminal.integrated.gpuAcceleration en "off" (que es justo lo que arregla el texto corrupto en el terminal integrado) y ajusta terminal.integrated.mouseWheelScrollSensitivity. Si quieres la aceleración de vuelta, ponla en "auto" y recarga la ventana.

Si usas tmux, hay una capa más

Dentro de tmux, Shift+Enter se rompe aunque el terminal de fuera lo soporte. Añade esto a ~/.tmux.conf:

set -g allow-passthrough on
set -s extended-keys on
set -as terminal-features 'xterm*:extkeys'

Y aplícalo con tmux source-file ~/.tmux.conf. Las dos líneas de extended-keys son las que dejan a tmux distinguir Shift+Enter de un Enter pelado. La de allow-passthrough es otra cosa, deja pasar las notificaciones y la barra de progreso al terminal de fuera.

Y si lo que quieres es invertirlo

Hay gente que prefiere lo contrario: que Enter baje línea y Shift+Enter envíe. Se hace en ~/.claude/keybindings.json, que puedes crear o abrir con /keybindings:

{
  "bindings": [
    {
      "context": "Chat",
      "bindings": {
        "enter": "chat:newline",
        "shift+enter": "chat:submit"
      }
    }
  ]
}

Los cambios se detectan solos, sin reiniciar la sesión. Y ojo con una tecla: Ctrl+M no se puede reasignar, porque en un terminal es literalmente lo mismo que Enter (los dos mandan un retorno de carro).

Referencia

Quiero Cómo
Salto de línea garantizado Ctrl+J
Salto de línea tecleado \ y luego Enter
Shift+Enter en VS Code, Cursor, Alacritty, Zed /terminal-setup, una vez, fuera de tmux
Shift+Enter en JetBrains o gnome-terminal No existe. Ctrl+J
Shift+Enter dentro de tmux extended-keys en ~/.tmux.conf
Invertir Enter y Shift+Enter chat:newline y chat:submit en ~/.claude/keybindings.json
Ver o editar tus atajos /keybindings

Documentación oficial: Configure your terminal for Claude Code

Requisitos: verificado en Claude Code v2.1.220. Los temas personalizados y otras opciones del fichero de atajos piden v2.1.118 o superior.

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