Capitulo 10: EDITOR y VISUAL

Por: Artiko
spacecakeeditorterminalgit

Capitulo 10: EDITOR y VISUAL

< Volver al Indice del Tutorial

Variables de entorno EDITOR y VISUAL

Spacecake configura automaticamente las variables de entorno EDITOR y VISUAL dentro de su terminal integrado al valor:

spacecake open --wait

Estas dos variables son un estandar en sistemas Unix. Muchos programas de linea de comandos las consultan cuando necesitan que el usuario edite texto en un archivo temporal. Normalmente apuntan a editores de terminal como vim o nano, pero Spacecake las redirige a si mismo.

El resultado es que cualquier herramienta CLI que necesite abrir un editor de texto, abre el archivo en un tab nuevo de Spacecake en lugar de un editor de terminal.

git commit sin -m

Cuando ejecutas git commit sin el flag -m, Git necesita que escribas un mensaje de commit. Para eso, abre el editor definido en $EDITOR (o en la configuracion core.editor de Git).

Con Spacecake configurado como editor, el flujo es:

  1. Ejecutas git commit en el terminal integrado.
  2. Spacecake abre un tab nuevo con el archivo temporal del mensaje de commit.
  3. Escribes el mensaje de commit en el editor WYSIWYG.
  4. Guardas y cierras el tab.
  5. Git recibe el mensaje y completa el commit.

El terminal queda en espera durante todo el proceso. No necesitas hacer nada especial: el flag --wait se encarga de mantener Git en pausa hasta que cierres el archivo.

Esto es particularmente util para mensajes de commit multilinea donde quieres usar el formato completo (titulo, linea en blanco y descripcion detallada). En el editor WYSIWYG tienes mas espacio y comodidad que escribiendo directamente en la terminal.

crontab -e

El comando crontab -e abre la tabla de tareas programadas de tu usuario para edicion. Al usar Spacecake como editor, el archivo crontab se abre en un tab del editor visual.

Esto facilita la edicion de tareas cron porque tienes syntax highlighting y un entorno mas amigable que la edicion directa en terminal.

Otros programas que usan $EDITOR o $VISUAL

Cualquier programa que consulte estas variables funciona con Spacecake. Algunos ejemplos comunes:

ComandoQue abre
git commitArchivo temporal del mensaje de commit
git rebase -iLista de commits para rebase interactivo
crontab -eTabla de tareas cron del usuario
kubectl editRecurso de Kubernetes en formato YAML
visudoArchivo sudoers para edicion segura
fcUltimo comando del historial para edicion

En todos estos casos, el flujo es el mismo: el programa crea un archivo temporal, Spacecake lo abre en un tab, tu editas y cierras, y el programa recibe el resultado.

El flag —wait

El flag --wait (o su forma corta -w) es la pieza clave de esta integracion. Sin el, spacecake open abriria el archivo y retornaria inmediatamente al proceso que lo llamo. El programa CLI interpretaria esto como que terminaste de editar (con un archivo vacio o sin cambios) y procederia sin tu input.

Con --wait, el proceso del CLI de Spacecake se mantiene activo hasta que cierres el tab correspondiente en la app. Solo entonces retorna el control al programa que lo invoco.

Internamente, el CLI se comunica con la instancia de Spacecake via IPC y recibe una notificacion cuando el archivo se cierra. Esto permite que el flujo sea:

programa CLI -> spacecake open --wait -> usuario edita -> cierra tab -> CLI retorna -> programa continua

Sobreescribir el editor temporalmente

Si en algun momento necesitas usar un editor diferente para un comando especifico, puedes sobreescribir la variable de entorno directamente en la linea de comando:

EDITOR=vim git commit

Esto ejecuta git commit usando vim como editor solo para ese comando. La variable EDITOR vuelve a spacecake open --wait para los siguientes comandos.

Otra forma es exportar temporalmente:

export EDITOR=nano
git commit
export EDITOR="spacecake open --wait"

Esto es util si trabajas en una sesion SSH remota donde Spacecake no esta disponible, o si prefieres usar un editor de terminal para alguna tarea especifica.

Ventaja sobre terminal puro

La principal ventaja de esta integracion es la experiencia de edicion. En lugar de escribir mensajes de commit en nano o vim dentro de la terminal, los escribes en el editor WYSIWYG de Spacecake con todas sus funcionalidades:

Para desarrolladores que no dominan editores de terminal, esto elimina una friccion constante. Para quienes si los dominan, es una alternativa mas visual cuando escriben texto largo como descripciones de commit, documentacion inline o configuraciones complejas.


Siguiente: Capitulo 11: CLI de Spacecake —>