Capitulo 6: Git, Terminal y Depuracion en Zed

Por: SiempreListo
zededitorgitterminaldebugdapdepuracion

Capitulo 6: Git, Terminal y Depuracion

Zed integra Git, terminal y un depurador basado en DAP para que trabajes de principio a fin sin salir del editor.

Anterior: Capitulo 5: Colaboracion | Siguiente: Capitulo 7: Extensiones y Personalizacion

Git Integrado

Panel de Git

Abre el panel de Git con Ctrl+G G o desde la paleta de comandos > “git panel: toggle focus”.

El panel muestra:

  • Archivos modificados: Con indicador de estado (modified, added, deleted, untracked)
  • Area de staging: Archivos preparados para commit
  • Campo de mensaje: Para escribir el mensaje de commit

Staging de Archivos

Hay varias formas de hacer staging:

  • Individual: Haz click en la casilla junto a cada archivo
  • Todo: Usa la paleta de comandos > “git: stage all”
  • Por hunks: En el diff, haz staging de cambios individuales dentro de un archivo

Crear Commits

  1. Prepara los archivos en staging
  2. Escribe el mensaje de commit en el campo de texto
  3. Presiona Cmd+Enter / Ctrl+Enter para confirmar

Mensajes de Commit con IA

Zed puede generar mensajes de commit usando IA:

  1. Prepara tus cambios en staging
  2. Enfoca el campo de mensaje de commit
  3. Haz click en el icono de lapiz o ejecuta “git: generate commit message”
  4. El modelo analiza los diffs y propone un mensaje descriptivo

Requiere un proveedor de IA configurado (ver Capitulo 4).

Gestion de Ramas

AccionComando
Crear ramaPaleta > “git: branch”
Cambiar ramaPaleta > “git: switch”
Eliminar ramaDesde el selector de ramas

El selector de ramas muestra todas las ramas locales y remotas con busqueda fuzzy.

Diffs

Diff Inline

Los cambios se muestran directamente en el editor con indicadores en el margen:

  • Verde: Lineas añadidas
  • Rojo: Lineas eliminadas
  • Amarillo: Lineas modificadas

Haz click en el indicador del margen para expandir el hunk y ver el cambio completo.

Project Diff

Abre una vista completa de todos los cambios del repositorio con Ctrl+G D o “project diff: deploy”.

El Project Diff muestra:

  • Todos los archivos modificados en un multibuffer editable
  • Resaltado de palabras cambiadas dentro de cada linea
  • Opciones para hacer staging/unstaging por hunk o archivo completo
  • Navegacion rapida entre cambios

Inline Blame

Zed muestra la informacion de git blame en la linea actual: quien hizo el ultimo cambio, cuando y el mensaje del commit.

Historial de Archivo

Accede al historial de commits de un archivo individual desde la paleta > “file history”. Muestra autor, fecha y mensaje de cada commit. Selecciona un commit para ver su diff filtrado.

Resolucion de Conflictos

Cuando hay conflictos de merge, Zed muestra las regiones conflictivas con colores:

  • Verde: Cambios de tu rama (current)
  • Azul: Cambios entrantes (incoming)

Tres opciones de resolucion:

  • Aceptar actual: Mantener tus cambios
  • Aceptar entrante: Usar los cambios que llegan
  • Aceptar ambos: Combinar ambos bloques

Stashing

AccionComando
Stash allPaleta > “git: stash all”
Stash popPaleta > “git: stash pop”
Ver stashesDesde el panel de Git

Operaciones Remotas

AccionComando
FetchPaleta > “git: fetch”
PushPaleta > “git: push”
PullPaleta > “git: pull”

Si tienes multiples remotos, Zed te permite seleccionar cual usar.

Genera enlaces permanentes al codigo en servicios Git (GitHub, GitLab):

  • Click derecho > “Copy Permalink”
  • Comparte la URL con el contexto exacto de linea y commit

Terminal Integrada

Abrir la Terminal

AccionmacOSLinux/Windows
Toggle terminalCtrl+`Ctrl+`
Nueva terminalPaleta > “terminal: new”Paleta > “terminal: new”

Configuracion de Terminal

{
  "terminal": {
    "shell": {
      "program": "/bin/zsh"
    },
    "font_family": "JetBrains Mono",
    "font_size": 13,
    "line_height": "comfortable",
    "working_directory": "current_project_directory",
    "blinking": "on",
    "env": {
      "EDITOR": "zed --wait"
    }
  }
}

Funcionalidades de la Terminal

  • Multiples terminales: Abre varias instancias y navega entre ellas
  • Splits: Divide la terminal horizontal o verticalmente
  • Deteccion de paths: Haz Cmd+Click / Ctrl+Click en rutas para abrir archivos
  • Integracion con el inline assistant: Selecciona un comando y pide ayuda a la IA

Usar Zed como Editor por Defecto

Configura Zed como tu editor de terminal para git y otros comandos:

# En .bashrc o .zshrc
export EDITOR="zed --wait"
export VISUAL="zed --wait"

Esto permite que git commit (sin -m) abra Zed para escribir el mensaje.

Depuracion con DAP

Zed incluye un depurador basado en el Debug Adapter Protocol (DAP) que soporta multiples lenguajes.

Lenguajes Soportados

Soporte nativo (incluido)

  • C, C++, Go, JavaScript, PHP, Python, Rust, TypeScript

Via extensiones

  • Java, Ruby, Swift

Configuracion del Depurador

Crea un archivo .zed/debug.json en la raiz de tu proyecto:

Ejemplo para Rust

[
  {
    "label": "Debug binary",
    "adapter": "codelldb",
    "request": "launch",
    "program": "${workspaceFolder}/target/debug/mi-app",
    "cwd": "${workspaceFolder}",
    "build": {
      "task_name": "cargo build"
    }
  }
]

Ejemplo para Python

[
  {
    "label": "Debug Python",
    "adapter": "debugpy",
    "request": "launch",
    "program": "${workspaceFolder}/main.py",
    "cwd": "${workspaceFolder}"
  }
]

Ejemplo para Node.js

[
  {
    "label": "Debug Node",
    "adapter": "js-debug",
    "request": "launch",
    "program": "${workspaceFolder}/src/index.ts",
    "cwd": "${workspaceFolder}"
  }
]

Ejemplo para Go

[
  {
    "label": "Debug Go",
    "adapter": "go",
    "request": "launch",
    "program": "${workspaceFolder}",
    "cwd": "${workspaceFolder}"
  }
]

Iniciar una Sesion de Debug

  1. Configura tu archivo .zed/debug.json
  2. Presiona F4 o ejecuta “debugger: start” desde la paleta
  3. Selecciona la configuracion de debug
  4. El depurador inicia y se detiene en los breakpoints

Breakpoints

TipoDescripcion
NormalClick en el margen del editor para añadir/quitar
CondicionalSe activa solo si una condicion es verdadera
Log pointImprime un mensaje sin detener la ejecucion
Hit countSe activa despues de N ejecuciones
ExceptionSe detiene cuando ocurre una excepcion

Controles de Ejecucion

AccionAtajo
ContinuarF5
Step Over (siguiente linea)F10
Step Into (entrar en funcion)F11
Step Out (salir de funcion)Shift+F11
DetenerShift+F5

Inspeccion de Variables

Durante la depuracion, Zed muestra:

  • Inline hints: Los valores de las variables aparecen junto al codigo
  • Panel de variables: Vista estructurada de variables locales, globales y de cierre
  • Watch expressions: Añade expresiones para monitorear valores especificos
  • Call stack: Navega la pila de llamadas para ver el flujo de ejecucion

Launch vs Attach

  • Launch: Inicia un nuevo proceso. Ideal para desarrollo y tests unitarios.
  • Attach: Se conecta a un proceso en ejecucion. Util para depurar servidores o procesos que no puedes reiniciar.
[
  {
    "label": "Attach to Node",
    "adapter": "js-debug",
    "request": "attach",
    "port": 9229
  }
]

Anterior: Capitulo 5: Colaboracion | Siguiente: Capitulo 7: Extensiones y Personalizacion