4 4
5# Configura tu terminal para Claude Code5# Configura tu terminal para Claude Code
6 6
7> Corrige Shift+Enter para saltos de línea, obtén una campana de terminal cuando Claude termine, configura tmux, haz coincidir el tema de color y habilita el modo Vim en la CLI de Claude Code.7> Corrige Shift+Enter para saltos de línea, obtén una campana de terminal cuando Claude termine, configura tmux, coincide con el tema de color y habilita el modo Vim en la CLI de Claude Code.
8 8
9Claude Code funciona en cualquier terminal sin configuración. Esta página es para cuando algo específico no se comporta como esperas. Encuentra tu síntoma a continuación. Si todo ya se siente bien, no necesitas esta página.9Claude Code funciona en cualquier terminal sin configuración. Esta página es para cuando algo específico no se comporta como se espera. Encuentre su síntoma a continuación. Si todo ya se siente bien, no necesita esta página.
10 10
11* [Shift+Enter envía en lugar de insertar un salto de línea](#enter-multiline-prompts)11* [Shift+Enter envía en lugar de insertar una salta de línea](#enter-multiline-prompts)
12* [Los atajos de tecla Option no funcionan en macOS](#enable-option-key-shortcuts-on-macos)12* [Los atajos de tecla Option no hacen nada en macOS](#enable-option-key-shortcuts-on-macos)
13* [Sin sonido ni alerta cuando Claude termina](#get-a-terminal-bell-or-notification)13* [Sin sonido ni alerta cuando Claude termina](#get-a-terminal-bell-or-notification)
14* [Ejecutas Claude Code dentro de tmux](#configure-tmux)14* [Ejecuta Claude Code dentro de tmux](#configure-tmux)
15* [La pantalla parpadea o el desplazamiento salta](#switch-to-fullscreen-rendering)15* [Retroceso elimina una palabra completa en Windows](#fix-backspace-deleting-a-whole-word-on-windows)
16* [Quieres teclas Vim en el indicador](#edit-prompts-with-vim-keybindings)16* [La pantalla parpadea o el desplazamiento hacia atrás salta](#switch-to-fullscreen-rendering)
17* [Deseas teclas Vim en el símbolo del sistema](#edit-prompts-with-vim-keybindings)
17 18
18Esta página trata sobre lograr que tu terminal envíe las señales correctas a Claude Code. Para cambiar qué teclas responde Claude Code, consulta [atajos de teclado](/es/keybindings) en su lugar.19Esta página trata sobre cómo hacer que tu terminal envíe las señales correctas a Claude Code. Para cambiar qué teclas responde Claude Code en sí, consulta [atajos de teclado](/docs/es/keybindings) en su lugar.
19 20
20<h2 id="enter-multiline-prompts">21<h2 id="enter-multiline-prompts">
21 Ingresa indicadores multilínea22 Ingrese indicaciones de varias líneas
22</h2>23</h2>
23 24
24Presionar Enter envía tu mensaje. Para agregar un salto de línea sin enviar, presiona Ctrl+J, o escribe `\` y luego presiona Enter. Ambos funcionan en cada terminal sin configuración.25Presionar Enter envía su mensaje. Para agregar un salto de línea sin enviar, presione Ctrl+J, o escriba `\` y luego presione Enter. Ambos funcionan en cada terminal sin necesidad de configuración.
25 26
26En la mayoría de terminales también puedes presionar Shift+Enter, pero el soporte varía según el emulador de terminal:27En la mayoría de las terminales también puede presionar Mayús+Enter, pero la compatibilidad varía según el emulador de terminal:
27 28
28| Terminal | Shift+Enter para salto de línea |29| Terminal | Mayús+Enter para nueva línea |
29| :---------------------------------------------------------------------- | :------------------------------------------ |30| :---------------------------------------------------------------------- | :------------------------------------------ |
30| Ghostty, Kitty, iTerm2, WezTerm, Warp, Apple Terminal, Windows Terminal | Funciona sin configuración |31| Ghostty, Kitty, iTerm2, WezTerm, Warp, Apple Terminal, Windows Terminal | Funciona sin configuración |
31| VS Code, Cursor, Devin Desktop, Alacritty, Zed | Ejecuta `/terminal-setup` una vez |32| VS Code, Cursor, Devin Desktop, Alacritty, Zed | Ejecute `/terminal-setup` una vez |
32| gnome-terminal, IDEs de JetBrains como PyCharm y Android Studio | No disponible; usa Ctrl+J o `\` luego Enter |33| gnome-terminal, IDEs de JetBrains como PyCharm y Android Studio | No disponible; use Ctrl+J o `\` luego Enter |
33 34
34Para VS Code, Cursor, Devin Desktop, Alacritty y Zed, `/terminal-setup` escribe Shift+Enter y otros atajos de teclado en el archivo de configuración de la terminal. Los enlaces existentes se dejan en su lugar; si ves un mensaje como `VSCode terminal Shift+Enter key binding already configured`, no se realizó ningún cambio. Ejecuta `/terminal-setup` directamente en la terminal del host en lugar de dentro de tmux o screen, ya que necesita escribir en la configuración de la terminal del host.35Para VS Code, Cursor, Devin Desktop, Alacritty y Zed, `/terminal-setup` escribe un atajo de teclado Mayús+Enter en el archivo de configuración de la terminal. En la primera ejecución verá una confirmación como `Installed VSCode terminal Shift+Enter key binding`. Los enlaces existentes se dejan en su lugar; si ve un mensaje como `VSCode terminal Shift+Enter key binding already configured`, no se realizó ningún cambio. Ejecute `/terminal-setup` directamente en la terminal del host en lugar de dentro de tmux o screen, ya que necesita escribir en la configuración de la terminal del host.
35 36
36En VS Code, Cursor y Devin Desktop, `/terminal-setup` también actualiza dos configuraciones del editor: establece `terminal.integrated.gpuAcceleration` en `"off"` para evitar texto distorsionado en la terminal integrada, y establece `terminal.integrated.mouseWheelScrollSensitivity` para un desplazamiento más suave en [modo pantalla completa](/es/fullscreen). Para deshacer el cambio de aceleración de GPU, establécelo de nuevo en `"auto"` y recarga la ventana del editor.37En VS Code, Cursor y Devin Desktop, `/terminal-setup` también actualiza dos configuraciones del editor: establece `terminal.integrated.gpuAcceleration` en `"off"` para evitar texto distorsionado en la terminal integrada, y establece `terminal.integrated.mouseWheelScrollSensitivity` para un desplazamiento más suave en [modo de pantalla completa](/docs/es/fullscreen). Para deshacer el cambio de aceleración de GPU, establézcalo nuevamente en `"auto"` y recargue la ventana del editor.
37 38
38Si estás ejecutando dentro de tmux, Shift+Enter también requiere la [configuración de tmux a continuación](#configure-tmux) incluso cuando la terminal externa la soporta.39En Zed, `/terminal-setup` actualiza su `keymap.json` en su lugar:
39 40
40Para vincular salto de línea a una tecla diferente, o para intercambiar el comportamiento de modo que Enter inserte un salto de línea y Shift+Enter envíe, mapea las acciones `chat:newline` y `chat:submit` en tu [archivo de atajos de teclado](/es/keybindings).41* Si el mapa de teclas ya tiene enlaces y ninguno de ellos es un `shift-enter` de Terminal, Claude Code primero lo respalda en una copia en el mismo directorio, como `keymap.json.1a2b3c4d.bak`, luego fusiona el enlace Mayús+Enter en su mapa de teclas, manteniendo sus otros atajos de teclado y comentarios
42* Si Claude Code no puede leer o analizar el mapa de teclas, no puede hacer una copia de seguridad, o no puede verificar el resultado fusionado, [deja el archivo sin cambios e imprime el bloque de enlace para que lo agregue usted mismo](/docs/es/errors#terminal-setup-left-your-zed-keymap-unchanged)
43
44Si está ejecutando dentro de tmux, Mayús+Enter también requiere la [configuración de tmux a continuación](#configure-tmux) incluso cuando la terminal externa la admite.
45
46Para vincular una nueva línea a una tecla diferente, o para intercambiar el comportamiento de modo que Enter inserte una nueva línea y Mayús+Enter envíe, asigne las acciones `chat:newline` y `chat:submit` en su [archivo de atajos de teclado](/docs/es/keybindings).
41 47
42<h2 id="enable-option-key-shortcuts-on-macos">48<h2 id="enable-option-key-shortcuts-on-macos">
43 Habilita atajos de tecla Option en macOS49 Habilitar atajos de teclado con la tecla Opción en macOS
44</h2>50</h2>
45 51
46Algunos atajos de Claude Code usan la tecla Option, como Option+Enter para un salto de línea u Option+P para cambiar modelos. En macOS, la mayoría de terminales no envían Option como modificador por defecto, por lo que estos atajos no hacen nada hasta que lo habilites. La configuración de terminal para esto generalmente se etiqueta como "Use Option as Meta Key"; Meta es el nombre histórico de Unix para la tecla ahora etiquetada como Option o Alt.52Algunos atajos de teclado de Claude Code utilizan la tecla Opción, como Opción+Intro para una nueva línea u Opción+P para cambiar modelos. En macOS, la mayoría de los terminales no envían Opción como modificador de forma predeterminada, por lo que estos atajos no funcionan hasta que los habilite. La configuración del terminal para esto generalmente se etiqueta como "Use Option as Meta Key"; Meta es el nombre histórico de Unix para la tecla ahora etiquetada como Opción o Alt.
47 53
48<Tabs>54<Tabs>
49 <Tab title="Apple Terminal">55 <Tab title="Apple Terminal">
50 Abre Configuración → Perfiles → Teclado y marca "Use Option as Meta Key".56 Abra Configuración → Perfiles → Teclado y marque "Use Option as Meta Key".
57
58 Si aceptó la solicitud de configuración del terminal de primera ejecución de Claude Code, esto ya está hecho. Esa solicitud ejecuta `/terminal-setup` para usted, que habilita Opción como Meta y desactiva la campana audible en su perfil de Apple Terminal.
51 59
52 Si aceptaste el indicador de primera ejecución de Claude Code que ofrecía "Option+Enter para saltos de línea y campana visual", esto ya está hecho. Ese indicador ejecuta `/terminal-setup` para ti, que habilita Option como Meta y cambia la campana de audio a un destello de pantalla visual en tu perfil de Apple Terminal.60 En [modo lector de pantalla](/docs/es/accessibility), `/terminal-setup` deja la configuración de campana sin cambios para que la campana del terminal permanezca audible. Antes de v2.1.211, `/terminal-setup` desactivaba la campana incluso en modo lector de pantalla. Si una ejecución anterior desactivó la campana, vuelva a activarla en Configuración → Perfiles → Avanzado → "Audible bell".
53 </Tab>61 </Tab>
54 62
55 <Tab title="iTerm2">63 <Tab title="iTerm2">
56 Abre Configuración → Perfiles → Teclas → General y establece la tecla Option Izquierda y la tecla Option Derecha en "Esc+".64 Abra Configuración → Perfiles → Teclas → General y establezca Left Option key y Right Option key en "Esc+".
57 65
58 Ejecutar `/terminal-setup` en iTerm2 habilita "Applications in terminal may access clipboard" en Configuración → General → Selection para que el comando `/copy` pueda escribir en tu portapapeles del sistema. El comando detecta iTerm2 incluso cuando se ejecuta desde dentro de tmux. Reinicia iTerm2 para que el cambio surta efecto.66 Ejecutar `/terminal-setup` en iTerm2 habilita "Applications in terminal may access clipboard" en Configuración → General → Selection para que el comando `/copy` pueda escribir en su portapapeles del sistema. El comando detecta iTerm2 incluso cuando se ejecuta desde dentro de tmux. Reinicie iTerm2 para que el cambio surta efecto.
59 </Tab>67 </Tab>
60 68
61 <Tab title="VS Code">69 <Tab title="VS Code">
62 Agrega `"terminal.integrated.macOptionIsMeta": true` a tu configuración de VS Code.70 Agregue `"terminal.integrated.macOptionIsMeta": true` a su configuración de VS Code.
63 </Tab>71 </Tab>
64</Tabs>72</Tabs>
65 73
66Para Ghostty, Kitty y otras terminales, busca una configuración de Option-as-Alt u Option-as-Meta en el archivo de configuración de la terminal.74Para Ghostty, Kitty y otros terminales, busque una configuración de Option-as-Alt u Option-as-Meta en el archivo de configuración del terminal.
67 75
68<h2 id="get-a-terminal-bell-or-notification">76<h2 id="get-a-terminal-bell-or-notification">
69 Obtén una campana de terminal o notificación77 Obtener una campana de terminal o notificación
70</h2>78</h2>
71 79
72Cuando Claude termina una tarea o se pausa para un indicador de permiso, dispara un evento de notificación. Mostrar esto como una campana de terminal o notificación de escritorio te permite cambiar a otro trabajo mientras se ejecuta una tarea larga.80Cuando Claude termina una tarea o se pausa para solicitar un permiso, y parece que está alejado de la terminal, se dispara un evento de notificación. Consulte [cuándo se dispara cada tipo de notificación](/docs/es/hooks#notification) para conocer el momento exacto. Mostrar esto como una campana de terminal o notificación de escritorio le permite cambiar a otro trabajo mientras se ejecuta una tarea larga.
73 81
74Por defecto, Claude Code envía una notificación de escritorio solo en Ghostty, Kitty e iTerm2. En otras terminales, establezca [`preferredNotifChannel`](/es/settings#available-settings) en `"terminal_bell"` para sonar la campana de terminal en su lugar, o configure un [gancho de Notificación](#play-a-sound-with-a-notification-hook) para un sonido personalizado o comando.82De forma predeterminada, Claude Code envía una notificación de escritorio solo en Ghostty, Kitty e iTerm2. En otras terminales, establezca [`preferredNotifChannel`](/docs/es/settings-reference#preferrednotifchannel) en `"terminal_bell"` para sonar la campana de terminal en su lugar, o configure un [hook de Notification](#play-a-sound-with-a-notification-hook) para un sonido o comando personalizado. La siguiente entrada de configuración activa la campana de terminal:
83
84```json ~/.claude/settings.json theme={null}
85{
86 "preferredNotifChannel": "terminal_bell"
87}
88```
75 89
76La notificación de escritorio llega a su máquina local a través de SSH, por lo que una sesión remota aún puede alertarle. Ghostty y Kitty la reenvían a su centro de notificaciones del SO sin configuración adicional. iTerm2 requiere que habilite el reenvío:90La notificación de escritorio llega a su máquina local a través de SSH, por lo que una sesión remota aún puede alertarle. Ghostty y Kitty la reenvían a su centro de notificaciones del SO sin configuración adicional. iTerm2 requiere que habilite el reenvío:
77 91
78<Steps>92<Steps>
79 <Step title="Abra la configuración de notificaciones de iTerm2">93 <Step title="Abrir la configuración de notificaciones de iTerm2">
80 Vaya a Configuración → Perfiles → Terminal.94 Vaya a Configuración → Perfiles → Terminal.
81 </Step>95 </Step>
82 96
83 <Step title="Habilite alertas">97 <Step title="Habilitar alertas">
84 Marque "Notification Center Alerts", luego haga clic en "Filter Alerts" y habilite "Send escape sequence-generated alerts".98 Marque "Notification Center Alerts", luego haga clic en "Filter Alerts" y habilite "Send escape sequence-generated alerts".
85 </Step>99 </Step>
86</Steps>100</Steps>
87 101
88Si las notificaciones aún no aparecen, confirme que su aplicación de terminal tenga permiso de notificación en su configuración del SO, y si está ejecutando dentro de tmux, [habilite passthrough](#configure-tmux).102Si las notificaciones aún no aparecen, confirme que su aplicación de terminal tiene permiso de notificación en la configuración de su SO, y si está ejecutando dentro de tmux, [habilite passthrough](#configure-tmux).
89 103
90<h3 id="play-a-sound-with-a-notification-hook">104<h3 id="play-a-sound-with-a-notification-hook">
91 Reproduzca un sonido con un gancho de Notificación105 Reproducir un sonido con un hook de Notification
92</h3>106</h3>
93 107
94En cualquier terminal puede configurar un [gancho de Notificación](/es/hooks-guide#get-notified-when-claude-needs-input) para reproducir un sonido o ejecutar un comando personalizado cuando Claude necesite su atención. Los ganchos se ejecutan junto con la notificación de escritorio en lugar de reemplazarla, por lo que las terminales que no reciben una notificación de escritorio, como Warp o la terminal integrada de VS Code, pueden usar un gancho o establecer `preferredNotifChannel` en `"terminal_bell"` en su lugar.108En cualquier terminal puede configurar un [hook de Notification](/docs/es/hooks-guide#get-notified-when-claude-needs-input) para reproducir un sonido o ejecutar un comando personalizado cuando Claude necesite su atención. Los hooks se ejecutan junto con la notificación integrada en lugar de reemplazarla, por lo que las terminales que no reciben una notificación de escritorio, como Warp o la terminal integrada de VS Code, pueden usar un hook o establecer `preferredNotifChannel` en `"terminal_bell"` en su lugar.
95 109
96El ejemplo a continuación reproduce un sonido del sistema en macOS. La guía vinculada tiene comandos de notificación de escritorio para macOS, Linux y Windows.110El ejemplo a continuación reproduce un sonido del sistema en macOS. La guía vinculada tiene comandos de notificación de escritorio para macOS, Linux y Windows.
97 111
108```122```
109 123
110<h2 id="configure-tmux">124<h2 id="configure-tmux">
111 Configura tmux125 Configurar tmux
112</h2>126</h2>
113 127
114Cuando Claude Code se ejecuta dentro de tmux, dos cosas se rompen por defecto: Shift+Enter envía en lugar de insertar un salto de línea, y las notificaciones de escritorio y la [barra de progreso](/es/settings#available-settings) nunca llegan a la terminal externa. Agrega estas líneas a `~/.tmux.conf`, luego ejecuta `tmux source-file ~/.tmux.conf` para aplicarlas al servidor en ejecución:128Cuando Claude Code se ejecuta dentro de tmux, dos cosas se rompen por defecto: Shift+Enter envía en lugar de insertar una nueva línea, y las notificaciones de escritorio y la [barra de progreso](/docs/es/settings-reference#terminalprogressbarenabled) nunca llegan a la terminal externa. Agregue estas líneas a `~/.tmux.conf`, luego ejecute `tmux source-file ~/.tmux.conf` para aplicarlas al servidor en ejecución:
115 129
116```bash ~/.tmux.conf theme={null}130```bash ~/.tmux.conf theme={null}
117set -g allow-passthrough on131set -g allow-passthrough on
119set -as terminal-features 'xterm*:extkeys'133set -as terminal-features 'xterm*:extkeys'
120```134```
121 135
122La línea `allow-passthrough` permite que las notificaciones y actualizaciones de progreso lleguen a la terminal externa en lugar de ser tragadas por tmux. Las líneas `extended-keys` permiten que tmux distinga Shift+Enter de Enter simple para que el atajo de salto de línea funcione.136La línea `allow-passthrough` permite que las notificaciones y actualizaciones de progreso lleguen a la terminal externa en lugar de ser absorbidas por tmux. Las líneas `extended-keys` permiten que tmux distinga Shift+Enter de Enter simple para que el atajo de nueva línea funcione.
137
138<h2 id="fix-backspace-deleting-a-whole-word-on-windows">
139 Corregir que Retroceso elimine una palabra completa en Windows
140</h2>
141
142En Windows, Claude Code lee un Retroceso que llega como `^H` como Ctrl+Retroceso, que [elimina la palabra anterior](/docs/es/interactive-mode#text-editing), excepto cuando `TERM_PROGRAM` es `mintty` o `TERM` es `cygwin`. En macOS y Linux, Claude Code lo lee como Retroceso simple.
143
144Si cada pulsación de Retroceso elimina una palabra completa, su terminal envía `^H` para Retroceso simple. Establezca [`CLAUDE_CODE_BS_AS_CTRL_BACKSPACE=0`](/docs/es/env-vars). Retroceso y Ctrl+H entonces borran un carácter cada uno. Si Ctrl+Retroceso borra solo un carácter en macOS o Linux porque su terminal envía `^H` para ello, establezca la variable a `1` en su lugar.
123 145
124<h2 id="match-the-color-theme">146<h2 id="match-the-color-theme">
125 Haz coincidir el tema de color147 Coincidir con el tema de color
126</h2>148</h2>
127 149
128Usa el comando `/theme`, o el selector de tema en `/config`, para elegir un tema de Claude Code que coincida con tu terminal. Seleccionar la opción auto detecta el fondo claro u oscuro de tu terminal, por lo que el tema sigue los cambios de apariencia del SO siempre que tu terminal lo haga. Claude Code no controla el esquema de color de la terminal, que se establece por la aplicación de terminal.150Utilice el comando `/theme`, o el selector de temas en `/config`, para elegir un tema de Claude Code que coincida con su terminal. Al seleccionar la opción automática, se detecta el fondo claro u oscuro de su terminal, por lo que el tema sigue los cambios de apariencia del sistema operativo siempre que lo haga su terminal. Claude Code no controla el esquema de colores de la terminal en sí, que se establece mediante la aplicación de terminal.
129 151
130Para personalizar lo que aparece en la parte inferior de la interfaz, configura una [línea de estado personalizada](/es/statusline) que muestre el modelo actual, directorio de trabajo, rama de git u otro contexto.152Para personalizar lo que aparece en la parte inferior de la interfaz, configure una [línea de estado personalizada](/docs/es/statusline) que muestre el modelo actual, el directorio de trabajo, la rama de git u otro contexto.
131 153
132<h3 id="create-a-custom-theme">154<h3 id="create-a-custom-theme">
133 Crea un tema personalizado155 Crear un tema personalizado
134</h3>156</h3>
135 157
136<Note>158Además de los ajustes preestablecidos integrados, `/theme` enumera cualquier tema personalizado que haya definido y cualquier tema contribuido por [plugins](/docs/es/plugins-reference#themes) instalados. Seleccione **Nuevo tema personalizado…** al final de la lista para crear uno de forma interactiva: usted nombra el tema y luego elige tokens de color individuales para anular. Presione `Ctrl+E` mientras un tema personalizado está resaltado para editarlo.
137 Los temas personalizados requieren Claude Code v2.1.118 o posterior.
138</Note>
139
140Además de los preajustes integrados, `/theme` enumera cualquier tema personalizado que hayas definido y cualquier tema contribuido por los [plugins](/es/plugins-reference#themes) instalados. Selecciona **Nuevo tema personalizado…** al final de la lista para crear uno de forma interactiva: nombras el tema y luego seleccionas tokens de color individuales para anular. Presiona `Ctrl+E` mientras un tema personalizado está resaltado para editarlo.
141 159
142Cada tema personalizado es un archivo JSON en `~/.claude/themes/`. El nombre de archivo sin la extensión `.json` es el slug del tema, y seleccionar el tema almacena `custom:<slug>` como tu preferencia de tema. El archivo tiene tres campos opcionales:160Cada tema personalizado es un archivo JSON en `~/.claude/themes/`. El nombre de archivo sin la extensión `.json` es el slug del tema, y seleccionar el tema almacena `custom:<slug>` como su preferencia de tema. El archivo tiene tres campos opcionales:
143 161
144| Campo | Tipo | Descripción |162| Campo | Tipo | Descripción |
145| :---------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------ |163| :---------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
146| `name` | string | Etiqueta de visualización mostrada en `/theme`. Por defecto es el slug del nombre de archivo |164| `name` | string | Etiqueta de visualización mostrada en `/theme`. Por defecto es el slug del nombre de archivo |
147| `base` | string | Preajuste integrado desde el que comienza el tema: `dark`, `light`, `dark-daltonized`, `light-daltonized`, `dark-ansi`, o `light-ansi`. Por defecto es `dark` |165| `base` | string | Ajuste preestablecido integrado desde el que comienza el tema: `dark`, `light`, `dark-daltonized`, `light-daltonized`, `dark-ansi`, o `light-ansi`. Por defecto es `dark` |
148| `overrides` | object | Mapa de nombres de tokens de color a valores de color. Los tokens no enumerados aquí se transfieren al preajuste base |166| `overrides` | object | Mapa de nombres de tokens de color a valores de color. Los tokens no enumerados aquí se heredan del ajuste preestablecido base |
149 167
150Los valores de color aceptan `#rrggbb`, `#rgb`, `rgb(r,g,b)`, `ansi256(n)`, o `ansi:<name>` donde `<name>` es uno de los 16 nombres de color ANSI estándar como `red` o `cyanBright`. Los tokens desconocidos y los valores de color inválidos se ignoran, por lo que un error tipográfico no puede romper la representación.168Los valores de color aceptan `#rrggbb`, `#rgb`, `rgb(r,g,b)`, `ansi256(n)`, o `ansi:<name>` donde `<name>` es uno de los 16 nombres de color ANSI estándar como `red` o `cyanBright`. Los tokens desconocidos y los valores de color inválidos se ignoran, por lo que un error tipográfico no puede romper la representación.
151 169
152El siguiente ejemplo define un tema que mantiene el preajuste oscuro pero recolora el acento del prompt, el texto de error y el texto de éxito:170El siguiente ejemplo define un tema que mantiene el ajuste preestablecido oscuro pero recolora el acento del prompt, el texto de error y el texto de éxito:
153 171
154```json ~/.claude/themes/dracula.json theme={null}172```json ~/.claude/themes/dracula.json theme={null}
155{173{
163}181}
164```182```
165 183
166Claude Code observa `~/.claude/themes/` y recarga cuando un archivo cambia, por lo que las ediciones realizadas en tu editor se aplican a una sesión en ejecución sin necesidad de reiniciar.184Claude Code observa `~/.claude/themes/` y se recarga cuando se agrega o cambia un archivo, por lo que las ediciones realizadas en su editor se aplican a una sesión en ejecución sin necesidad de reiniciar. Si la carpeta `~/.claude/themes/` en sí no existía cuando Claude Code se inició, reinicie una vez después de crear su primer archivo de tema. Después de eso, los cambios se aplican sin necesidad de reiniciar.
167 185
168La referencia a continuación cubre los tokens que puede establecer en `overrides`. El editor interactivo en `/theme` muestra los mismos tokens con una vista previa en vivo, además de algunos acentos de propósito único como colores de pantalla de incorporación que se omiten aquí.186La referencia a continuación cubre los tokens que puede establecer en `overrides`. El editor interactivo en `/theme` muestra los mismos tokens con una vista previa en vivo, además de algunos acentos de propósito único como colores de pantalla de incorporación que se omiten aquí.
169 187
170<Accordion title="Referencia de tokens de color">188<Accordion title="Referencia de tokens de color">
171 El siguiente ejemplo combina tokens de varios de los grupos a continuación: el acento de marca, el borde del modo plan, los fondos de diff y el fondo del mensaje de pantalla completa.189 El siguiente ejemplo combina tokens de varios de los grupos a continuación: el acento de marca, el borde del modo de plan, los fondos de diff y el fondo del mensaje.
172 190
173 ```json ~/.claude/themes/midnight.json theme={null}191 ```json ~/.claude/themes/midnight.json theme={null}
174 {192 {
188 Colores de texto y acento206 Colores de texto y acento
189 </h4>207 </h4>
190 208
191 Controla el acento de marca principal y los matices de texto de primer plano utilizados en toda la interfaz.209 Controle el acento de marca principal y los matices de texto de primer plano utilizados en toda la interfaz.
192 210
193 | Token | Controla |211 | Token | Controla |
194 | :------------ | :------------------------------------------------------------------------------- |212 | :------------ | :------------------------------------------------------------------------------- |
205 Colores de estado223 Colores de estado
206 </h4>224 </h4>
207 225
208 Señala estados de éxito, fallo y advertencia en mensajes e indicadores.226 Señale estados de éxito, fallo y advertencia en mensajes e indicadores.
209 227
210 | Token | Controla |228 | Token | Controla |
211 | :-------- | :------------------------------------------------------------ |229 | :-------- | :------------------------------------------------------------------ |
212 | `success` | Mensajes de éxito y comprobaciones aprobadas |230 | `success` | Mensajes de éxito y comprobaciones aprobadas |
213 | `error` | Mensajes de error y fallos |231 | `error` | Mensajes de error y fallos |
214 | `warning` | Advertencias, mensajes de precaución y el borde del modo auto |232 | `warning` | Advertencias, mensajes de precaución y el borde del modo automático |
215 | `merged` | Estado de solicitud de extracción fusionada |233 | `merged` | Estado de solicitud de extracción fusionada |
216 234
217 <h4 id="input-box-and-mode-indicators">235 <h4 id="input-box-and-mode-indicators">
218 Cuadro de entrada e indicadores de modo236 Cuadro de entrada e indicadores de modo
219 </h4>237 </h4>
220 238
221 Establece el color del borde del cuadro de entrada y el acento mostrado mientras un modo de permiso o indicador está activo.239 Establezca el color del borde del cuadro de entrada y el acento mostrado mientras un modo de permiso o indicador está activo.
222 240
223 | Token | Controla |241 | Token | Controla |
224 | :------------- | :--------------------------------------------------------------- |242 | :------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
225 | `promptBorder` | Borde del cuadro de entrada en el modo de permiso predeterminado |243 | `promptBorder` | Borde del cuadro de entrada en modo Manual |
226 | `planMode` | Acento y borde del modo plan |244 | `planMode` | Acento y borde del modo de plan |
227 | `autoAccept` | Acento y borde del modo aceptar ediciones |245 | `autoAccept` | Acento y borde del modo de aceptación de ediciones |
228 | `bashBorder` | Borde del cuadro de entrada al ingresar un comando de shell `!` |246 | `bashBorder` | Borde del cuadro de entrada al ingresar un comando de shell `!` |
229 | `ide` | Indicador de conexión IDE |247 | `ide` | Indicador de conexión IDE |
230 | `fastMode` | Indicador del modo rápido |248 | `fastMode` | Indicador de modo rápido |
249 | `effortUltra` | La etiqueta `ultracode` en el borde del cuadro de entrada mientras [ultracode](/docs/es/model-config#adjust-effort-level) está activado. Su anulación de este color tiene efecto en Claude Code v2.1.239 o posterior |
231 250
232 <h4 id="diff-rendering">251 <h4 id="diff-rendering">
233 Representación de diff252 Representación de diff
234 </h4>253 </h4>
235 254
236 Colorea el código añadido y eliminado en ediciones y revisiones de archivos.255 Coloree el código agregado y eliminado en ediciones y revisiones de archivos.
237 256
238 | Token | Controla |257 | Token | Controla |
239 | :------------------ | :--------------------------------------------------------- |258 | :------------------ | :-------------------------------------------------------------------------------------- |
240 | `diffAdded` | Fondo de líneas añadidas |259 | `diffAdded` | Fondo de líneas agregadas |
241 | `diffRemoved` | Fondo de líneas eliminadas |260 | `diffRemoved` | Fondo de líneas eliminadas |
242 | `diffAddedDimmed` | Fondo de contexto sin cambios cerca de líneas añadidas |261 | `diffAddedDimmed` | Fondo de líneas agregadas en el diff atenuado mostrado después de rechazar una edición |
243 | `diffRemovedDimmed` | Fondo de contexto sin cambios cerca de líneas eliminadas |262 | `diffRemovedDimmed` | Fondo de líneas eliminadas en el diff atenuado mostrado después de rechazar una edición |
244 | `diffAddedWord` | Resaltado a nivel de palabra dentro de una línea añadida |263 | `diffAddedWord` | Resaltado a nivel de palabra dentro de una línea agregada |
245 | `diffRemovedWord` | Resaltado a nivel de palabra dentro de una línea eliminada |264 | `diffRemovedWord` | Resaltado a nivel de palabra dentro de una línea eliminada |
246 265
247 <h4 id="fullscreen-mode">266 <h4 id="fullscreen-mode">
248 Modo de pantalla completa267 Modo de pantalla completa
249 </h4>268 </h4>
250 269
251 Se aplica solo en [modo de representación de pantalla completa](/es/fullscreen), donde los mensajes tienen un relleno de fondo.270 Claude Code pinta `userMessageBackground`, `bashMessageBackgroundColor` y `memoryBackgroundColor` en los renderizadores predeterminado y de pantalla completa. Utiliza `userMessageBackgroundHover` y `selectionBg` solo en [modo de representación de pantalla completa](/docs/es/fullscreen).
252 271
253 | Token | Controla |272 | Token | Controla |
254 | :--------------------------- | :----------------------------------------------------------------------------- |273 | :--------------------------- | :------------------------------------------------------------------- |
255 | `userMessageBackground` | Fondo detrás de tus mensajes en la transcripción |274 | `userMessageBackground` | Fondo detrás de sus mensajes en la transcripción |
256 | `userMessageBackgroundHover` | Fondo detrás de un mensaje mientras está desplazado o expandido |275 | `userMessageBackgroundHover` | Fondo detrás de un mensaje mientras se desplaza o se expande |
257 | `messageActionsBackground` | Fondo detrás del mensaje seleccionado cuando la barra de acciones está abierta |
258 | `bashMessageBackgroundColor` | Fondo detrás de entradas de comando de shell `!` en la transcripción |276 | `bashMessageBackgroundColor` | Fondo detrás de entradas de comando de shell `!` en la transcripción |
259 | `memoryBackgroundColor` | Fondo detrás de entradas de memoria `#` en la transcripción |277 | `memoryBackgroundColor` | Fondo detrás de entradas de memoria `#` en la transcripción |
260 | `selectionBg` | Fondo del texto seleccionado con el ratón |278 | `selectionBg` | Fondo del texto seleccionado con el ratón |
263 Medidor de uso y etiquetas de altavoz281 Medidor de uso y etiquetas de altavoz
264 </h4>282 </h4>
265 283
266 Ajusta la barra mostrada en la vista `/usage` y las etiquetas que distinguen tus mensajes de los de Claude.284 Ajuste la barra mostrada en la vista `/usage` y las etiquetas que distinguen sus mensajes de los de Claude.
267 285
268 | Token | Controla |286 | Token | Controla |
269 | :----------------- | :---------------------------------------------------------- |287 | :----------------- | :------------------------------------------------------ |
270 | `rate_limit_fill` | Porción llena del medidor de uso |288 | `rate_limit_fill` | Porción llena del medidor de uso |
271 | `rate_limit_empty` | Porción vacía del medidor de uso |289 | `rate_limit_empty` | Porción no llena del medidor de uso |
272 | `briefLabelYou` | Color de la etiqueta `You` en tus mensajes |290 | `briefLabelYou` | Color de la etiqueta `You` en sus mensajes |
273 | `briefLabelClaude` | Color de la etiqueta `Claude` en los mensajes del asistente |291 | `briefLabelClaude` | Color de la etiqueta `Claude` en mensajes del asistente |
274 292
275 <h4 id="shimmer-variants-and-subagent-colors">293 <h4 id="shimmer-variants-and-subagent-colors">
276 Variantes de shimmer y colores de subagentes294 Variantes de shimmer y colores de subagentes
277 </h4>295 </h4>
278 296
279 Varios tokens tienen una variante de shimmer emparejada que proporciona el color más claro utilizado en el gradiente animado del spinner. Anula el shimmer junto con su token base si la animación se ve desajustada.297 Varios tokens tienen una variante de shimmer emparejada que proporciona el color más claro utilizado en el gradiente animado del spinner. Anule el shimmer junto con su token base si la animación se ve desajustada.
280 298
281 * `claude` y `claudeShimmer`299 * `claude` y `claudeShimmer`
282 * `warning` y `warningShimmer`300 * `warning` y `warningShimmer`
285 * `inactive` e `inactiveShimmer`303 * `inactive` e `inactiveShimmer`
286 * `fastMode` y `fastModeShimmer`304 * `fastMode` y `fastModeShimmer`
287 305
288 Cada [subagente](/es/sub-agents) y tarea paralela se muestra en uno de ocho colores nombrados para que puedas distinguirlos en la transcripción. Los nombres de los tokens siguen el patrón `<color>_FOR_SUBAGENTS_ONLY`, donde `<color>` es `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, o `cyan`. Anula estos para cambiar el aspecto de cada color nombrado. Por ejemplo, un subagente con `color: blue` en su definición se dibuja usando el valor `blue_FOR_SUBAGENTS_ONLY`.306 Cada [subagente](/docs/es/sub-agents) y tarea paralela se muestra en uno de ocho colores nombrados para que pueda distinguirlos en la transcripción. Los nombres de tokens siguen el patrón `<color>_FOR_SUBAGENTS_ONLY`, donde `<color>` es `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, o `cyan`. Anule estos para cambiar el aspecto de cada color nombrado. Por ejemplo, un subagente con `color: blue` en su definición se dibuja usando el valor `blue_FOR_SUBAGENTS_ONLY`.
289 307
290 Las palabras clave [`ultrathink`](/es/model-config#use-ultrathink-for-one-off-deep-reasoning) y [`ultraplan`](/es/ultraplan) en la entrada del prompt se representan con un gradiente arcoíris de siete colores. Los nombres de los tokens siguen el patrón `rainbow_<color>` y `rainbow_<color>_shimmer`, donde `<color>` es `red`, `orange`, `yellow`, `green`, `blue`, `indigo`, o `violet`.308 Claude Code representa la palabra clave [`ultrathink`](/docs/es/model-config#use-ultrathink-for-one-off-deep-reasoning) en la entrada del prompt con un gradiente arcoíris de siete colores. Los nombres de tokens siguen el patrón `rainbow_<color>` y `rainbow_<color>_shimmer`, donde `<color>` es `red`, `orange`, `yellow`, `green`, `blue`, `indigo`, o `violet`.
291</Accordion>309</Accordion>
292 310
293<h2 id="switch-to-fullscreen-rendering">311<h2 id="switch-to-fullscreen-rendering">
294 Cambia a renderizado a pantalla completa312 Cambiar a renderizado a pantalla completa
295</h2>313</h2>
296 314
297Si la pantalla parpadea o la posición de desplazamiento salta mientras Claude está trabajando, cambia al [modo de renderizado a pantalla completa](/es/fullscreen). Dibuja en una pantalla separada que la terminal reserva para aplicaciones a pantalla completa en lugar de agregar a tu desplazamiento normal, lo que mantiene el uso de memoria plano y agrega soporte de ratón para desplazamiento y selección. En este modo desplazas con el ratón o PageUp dentro de Claude Code en lugar de con el desplazamiento nativo de tu terminal; consulta la [página de pantalla completa](/es/fullscreen#search-and-review-the-conversation) para saber cómo buscar y copiar.315En [modo de lector de pantalla](/docs/es/accessibility), esta sección no aplica. Claude Code siempre se renderiza como texto de desplazamiento simple excepto en [sesiones de fondo](/docs/es/agent-view) adjuntas, y si ejecuta `/tui fullscreen` en cualquier otra sesión, Claude Code imprime una explicación en lugar de cambiar.
316
317Si la pantalla parpadea o la posición de desplazamiento salta mientras Claude está trabajando, cambie a [modo de renderizado a pantalla completa](/docs/es/fullscreen). En este modo se desplaza con el ratón o AvPág dentro de Claude Code en lugar de con el desplazamiento nativo de su terminal; consulte la [página de pantalla completa](/docs/es/fullscreen#search-and-review-the-conversation) para saber cómo buscar y copiar.
318
319Si el parpadeo es el único problema y su terminal admite salida sincronizada pero no se detecta automáticamente, como Emacs `eat`, establezca [`CLAUDE_CODE_FORCE_SYNC_OUTPUT=1`](/docs/es/env-vars) para detener el parpadeo sin cambiar renderizadores.
298 320
299Ejecuta `/tui fullscreen` para cambiar y guardar la preferencia. Tu conversación se reinicia intacta y las futuras sesiones comienzan en pantalla completa. También puedes establecer la variable de entorno `CLAUDE_CODE_NO_FLICKER` antes de iniciar Claude Code:321Ejecute `/tui fullscreen` para cambiar y guardar la preferencia. Su conversación se reinicia intacta y las sesiones futuras comienzan en pantalla completa a menos que [falle el inicio de pantalla completa](/docs/es/fullscreen#fullscreen-renderer-didnt-finish-starting). También puede establecer la variable de entorno `CLAUDE_CODE_NO_FLICKER` antes de iniciar Claude Code:
300 322
301<CodeGroup>323<CodeGroup>
302 ```bash Bash and Zsh theme={null}324 ```bash Bash and Zsh theme={null}
317</CodeGroup>339</CodeGroup>
318 340
319<h2 id="paste-large-content">341<h2 id="paste-large-content">
320 Pega contenido grande342 Pegar contenido grande
321</h2>343</h2>
322 344
323Cuando pegas más de 10,000 caracteres en el indicador, Claude Code colapsa la entrada a un marcador de posición `[Pasted text]` para que la caja de entrada siga siendo utilizable. El contenido completo aún se envía a Claude cuando envías.345Cuando pega más de 800 caracteres o más de tres líneas en el prompt, Claude Code contrae la entrada a un marcador de posición como `[Pasted text #1 +120 lines]` para que la caja de entrada siga siendo utilizable. En una ventana de terminal más corta que 12 filas, el límite de líneas disminuye, por lo que Claude Code contrae un pegado de tres líneas a 11 filas y cualquier pegado de varias líneas a 10 filas o menos. Claude Code sigue enviando el contenido completo cuando envía.
324 346
325La terminal integrada de VS Code puede soltar caracteres de pegados muy grandes antes de que lleguen a Claude Code, así que prefiere flujos de trabajo basados en archivos allí. Para entradas muy grandes como archivos completos o registros largos, escribe el contenido en un archivo y pide a Claude que lo lea en lugar de pegar. Esto mantiene la transcripción de conversación legible y permite que Claude haga referencia al archivo por ruta en turnos posteriores.347Cuando elimina con un atajo de palabra o línea como `Ctrl+W` o `Ctrl+K`, o con una eliminación vim a través de un movimiento `f`/`t` como `df]`, y el rango eliminado llega dentro de un marcador de posición, Claude Code elimina el marcador de posición completo. Puede pegar la eliminación nuevamente para restaurarla, con [`Ctrl+Y`](/docs/es/interactive-mode#text-editing) después de un atajo de palabra o línea, o con [`p` en NORMAL mode](/docs/es/interactive-mode#editing-normal-mode) después de una eliminación vim.
348
349Claude Code mantiene el contenido contraído bajo `~/.claude/paste-cache/`, por lo que cuando recupera un prompt del [historial de comandos](/docs/es/interactive-mode#command-history) y lo reenvía, Claude Code envía el contenido pegado completo nuevamente, incluso en una sesión posterior, hasta que el barrido de retención elimine el archivo de caché.
350
351Claude Code elimina archivos de caché más antiguos que [`cleanupPeriodDays`](/docs/es/settings-reference#cleanupperioddays), siguiendo las [reglas de barrido de retención](/docs/es/claude-directory#cleaned-up-automatically), por lo que un prompt recuperado puede hacer referencia a texto pegado que ya no existe. Cuando envía tal prompt, Claude Code nunca envía la cadena literal `[Pasted text #N]`, y muestra una notificación nombrando el pegado faltante:
352
353* En un prompt simple con texto restante, Claude Code elimina el marcador de posición y envía el texto restante.
354* En un comando de [shell mode](/docs/es/interactive-mode#shell-mode-with-prefix) o un comando `/`, donde la eliminación cambiaría lo que se ejecuta, y en cualquier prompt donde la eliminación deja vacío, Claude Code cancela el envío y mantiene el texto original en la entrada, con el marcador de posición aún en él. Elimine el marcador de posición o edite el comando, luego reenvíe.
355
356La terminal integrada de VS Code puede descartar caracteres de pegados muy grandes antes de que lleguen a Claude Code, por lo que prefiera flujos de trabajo basados en archivos allí. Para entradas muy grandes como archivos completos o registros largos, escriba el contenido en un archivo y pida a Claude que lo lea en lugar de pegarlo. Esto mantiene la transcripción de la conversación legible y permite que Claude haga referencia al archivo por ruta en turnos posteriores.
326 357
327<h2 id="edit-prompts-with-vim-keybindings">358<h2 id="edit-prompts-with-vim-keybindings">
328 Edita indicadores con atajos de teclado Vim359 Editar prompts con atajos de teclado Vim
329</h2>360</h2>
330 361
331Claude Code incluye un modo de edición de estilo Vim para la entrada del indicador. Habilítalo a través de `/config` → Editor mode, o estableciendo [`editorMode`](/es/settings#available-settings) en `"vim"` en `~/.claude/settings.json`. Establece Editor mode de nuevo en `normal` para desactivarlo.362Claude Code incluye un modo de edición estilo Vim para la entrada de prompts. Actívelo a través de `/config` → Editor mode, o configurando [`editorMode`](/docs/es/settings-reference#editormode) a `"vim"` en `~/.claude/settings.json`. Configure el modo Editor nuevamente a `normal` para desactivarlo.
363
364El modo Vim admite un subconjunto de motions y operadores de modo NORMAL y VISUAL, como navegación `hjkl`, selección `v`/`V`, y `d`/`c`/`y` con objetos de texto. Consulte la [referencia del modo editor Vim](/docs/es/interactive-mode#vim-editor-mode) para la tabla de teclas completa.
332 365
333El modo Vim soporta un subconjunto de movimientos y operadores de modo NORMAL y VISUAL, como navegación `hjkl`, selección `v`/`V`, y `d`/`c`/`y` con objetos de texto. Consulta la [referencia del modo editor Vim](/es/interactive-mode#vim-editor-mode) para la tabla de teclas completa. Los movimientos Vim no son remapeables a través del archivo de atajos de teclado.366Los motions de Vim no se pueden remapear a través del archivo de atajos de teclado. Para mapear una secuencia de modo INSERT de dos teclas como `jj` a Escape, configure [`vimInsertModeRemaps`](/docs/es/interactive-mode#remap-insert-mode-key-sequences) en su configuración de usuario.
334 367
335Presionar Enter aún envía tu indicador en modo INSERT, a diferencia del Vim estándar. Usa `o` u `O` en modo NORMAL, o Ctrl+J, para insertar un salto de línea en su lugar.368Presionar Enter sigue enviando su prompt en modo INSERT, a diferencia del Vim estándar. Use `o` u `O` en modo NORMAL, o Ctrl+J, para insertar una nueva línea en su lugar.
336 369
337<h2 id="related-resources">370<h2 id="related-resources">
338 Recursos relacionados371 Recursos relacionados
339</h2>372</h2>
340 373
341* [Modo interactivo](/es/interactive-mode): referencia completa de atajos de teclado y tabla de teclas Vim374* [Modo interactivo](/docs/es/interactive-mode): referencia completa de atajos de teclado y tabla de teclas Vim
342* [Atajos de teclado](/es/keybindings): remapea cualquier atajo de Claude Code, incluyendo Enter y Shift+Enter375* [Atajos de teclado](/docs/es/keybindings): remapea cualquier atajo de Claude Code, incluyendo Enter y Shift+Enter
343* [Renderizado a pantalla completa](/es/fullscreen): detalles sobre desplazamiento, búsqueda y copia en modo pantalla completa376* [Renderizado a pantalla completa](/docs/es/fullscreen): detalles sobre desplazamiento, búsqueda y copia en modo pantalla completa
344* [Guía de ganchos](/es/hooks-guide): más ejemplos de ganchos de Notificación para Linux y Windows377* [Guía de ganchos](/docs/es/hooks-guide): más ejemplos de ganchos de Notificación para Linux y Windows
345* [Solución de problemas](/es/troubleshooting): correcciones para problemas fuera de la configuración de terminal378* [Solución de problemas](/docs/es/troubleshooting): correcciones para problemas fuera de la configuración de terminal