Editar comandos en la terminal usando tu editor (Ctrl+X Ctrl+E)

#cli#terminal

Si usas mucho la terminal, seguro te ha pasado esto. Estás escribiendo un comando largo.

Algo tipo:

curl -X POST \
  -H "Authorization: Bearer ${API_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{ ... }' \
  https://api.example.com

Y de repente te das cuenta de que hay un error… al principio. Aquí normalmente tienes varias opciones:

Ninguna es especialmente cómoda. Hay una forma mucho mejor.


Editar comandos en Bash y Zsh con Ctrl+X Ctrl+E

Cuando estás escribiendo un comando en la terminal, puedes hacer:

Ctrl + X  luego  Ctrl + E

Y pasa algo bastante útil.

Se abre tu editor (como Vim, Nano o Visual Studio Code) con el comando que llevas escrito.

Puedes editarlo tranquilamente, guardar y cerrar.

Y cuando cierras… el comando se ejecuta automáticamente.


Ejemplo real editando un comando largo

Imagina que estás escribiendo algo más complejo:

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${API_TOKEN}" \
  -H "User-Agent: MyApp/1.0" \
  -d '{
    "name": "John Doe",
    "email": "john@example.com"
  }' \
  https://api.example.com

Y quieres cambiar algo en el JSON.

En lugar de pelearte con la terminal:

Ctrl + X  Ctrl + E

Se abre tu editor, realizas las modificaciones, guardas y cierras.

Y el comando se ejecuta automáticamente.


Cuándo usar Ctrl+X Ctrl+E

Este atajo es especialmente útil en varios casos.


Configurar el editor en la terminal

Este atajo usa el editor definido en la variable de entorno:

$EDITOR

Si no lo tienes configurado, puedes añadirlo en tu .zshrc o .bashrc:

export EDITOR=vim

O si usas Visual Studio Code:

export EDITOR="code --wait"

💡 El flag --wait es importante.

Hace que la terminal espere a que cierres el editor antes de ejecutar el comando.


Cómo probar Ctrl+X Ctrl+E

Puedes probarlo rápidamente:

  1. Escribe algo simple:
ls -la
  1. Pulsa:
Ctrl + X  Ctrl + E
  1. Se abrirá tu editor
  2. Guarda y cierra

El comando se ejecutará automáticamente.


Conclusión

Editar comandos largos en la terminal puede ser incómodo.

Pero con Ctrl+X Ctrl+E puedes usar tu editor habitual para hacerlo de forma mucho más cómoda.

No es algo que uses constantemente, pero cuando trabajas con comandos complejos, marca una gran diferencia.


FAQ

¿Qué hace Ctrl+X Ctrl+E en la terminal?

Abre el comando actual en tu editor configurado ($EDITOR) para que puedas editarlo antes de ejecutarlo.

¿Funciona en Bash y Zsh?

Sí, este atajo funciona en shells como Bash y Zsh.

¿Cómo cambiar el editor que se abre?

Configurando la variable de entorno:

export EDITOR=vim

o usando otro editor como VSCode con code --wait.