He sido usuario de Neovim durante bastantes años, y también he utilizado VSCode de vez en cuando. Pero con todo este bombo de la IA y la «codificación de vibración» flotando alrededor, empecé a sentir un poco de FOMO.

Así que decidí probar agentes de IA, sobre todo para demostrarme a mí mismo que seguir con Neovim y copiar y pegar de ChatGPT seguía siendo la mejor manera.

Primero pensé en probar Cursor o Cline, pero cambié de idea cuando un colega -un viejo usuario de Emacs- se pasó a Zed. Eso me picó la curiosidad. De hecho, me había descargado Zed hacía tiempo, pero la idea de aprender un nuevo IDE y adaptarme a la forma de codificar del «agente de IA» me parecía agotadora.

Hace tres semanas, decidí que ya había postergado bastante las cosas y me puse manos a la obra.

En este artículo, te explicaré lo que me gustó (y lo que no) de Zed - especialmente desde la perspectiva de alguien que era escéptico de los agentes de IA y profundamente leal a Neovim.

¿Qué es Zed?


Lo dice Google: Zed es un editor de código multijugador de alto rendimiento creado por los creadores de Atom y Tree-sitter y escrito en Rust.

Es muy eficaz
Para ser honesto, nunca he tenido problemas de rendimiento con Neovim o VSCode - aunque los grandes proyectos pueden ser lentos. Pero lo primero que noté sobre Zed? Es increíblemente rápido.

Todo -desde la navegación hasta las funciones de LSP y la aplicación de sugerencias- va como la seda. Realmente fluido. Con 120 FPS, incluso el desplazamiento monstruoso era como la mantequilla. Nunca antes había sentido este tipo de respuesta en ningún editor.

Modo VIM


Esto realmente me sorprendió. El modo Vim en la mayoría de los editores siempre se sintió... artificial. Lo he probado en VSCode y en IntelliJ, en todos los editores que he usado, pero nunca ha funcionado. Aunque el modo Vim de Zed casi tiene características similares al de VSCode, lo encuentro super suave.

Soporta la mayoría de los keybindings que me interesan (como surround, Git, LSP). Algunos atajos eran diferentes de los nativos de Vim, me acostumbré a algunos de ellos y reasigné algunos de ellos. Gracias al rendimiento de Zed, mi velocidad de edición ha mejorado notablemente.

Panel de asistentes


Al principio dudaba mucho de la IA. Incluso la despreciaba. Recuerdo que pensaba: «Nunca necesitaré IA. Stack Overflow es suficiente».

Luego empecé a usar casualmente chatpgt sólo para llegar a un punto en el que no puedo codificar sin él 😅.

Aun así, no me convencían los agentes de IA. La idea de una IA haciendo directamente cambios en mi código base me parecía... invasiva. Pero la gente a mi alrededor lo usaba y decían que les hacía ser más productivos. Así que pensé, vale, déjame al menos probarme a mí mismo por qué no funciona.

Y entonces me hice con Zed. (Vamos, no podía usar Cursor o Cline - soy un chico Neovim - ¡quiero algo elegante!)

@Mentions - Añadir contextos de forma inteligente


Uno de los principales problemas de mi antiguo flujo de trabajo ChatGPT era añadir contexto - archivos, errores, fragmentos - todo era manual y agotador. Zed resuelve esto con algo llamado @Mentions. Puedo adjuntar rápidamente cosas como

@archivo

@symbol <nombre de función/nombre de clase> (básicamente cualquier identificador reconocido por el servidor de idiomas)

Ejemplo de símbolos disponibles en un archivo react-context
  • Incluso diagnósticos de LSP o contenido de una página web.

Es super rápido y se adapta muy bien a mi flujo de trabajo. La mayoría de las veces hago preguntas sobre un solo archivo, una función, etc.

Como puedes ver, puedo añadir un archivo, símbolo, hilos, reglas (ver más abajo), fetch etc como contexto

Mensajes personalizados : Reglas


Y otra cosa que he notado usando mi antiguo flujo de trabajo chatgpt fue que constantemente me encuentro repitiendo prompts como

¿Puede arreglar este error ?
¿Puedes refactorizar este código <alguna-función>?


Zed lo soluciona con mensajes personalizados: Reglas lo llaman, son una forma de crear prompts personalizados y algo más que textos planos. Puedes adjuntar más contextos usando comandos de barra - precursores de @Mentions pero más potentes.

Biblioteca de reglas: Así es como puedes añadir reglas personalizadas

Una vez que haya creado una regla, adjuntar avisos personalizados es tan fácil como soltarla en cualquier hilo (cada conversación en el panel de Asistente se denomina hilo) utilizando @rule .

Perfiles


Zed tiene este concepto de perfiles - básicamente modos para tu agente de IA.

Hay:

Write

modo por defecto, donde el agente puede editar código, ejecutar comandos y el agente tiene la máxima libertad para hacer la mayoría de las cosas que tú puedes hacer.


Ask

para cuando sólo estás tratando de entender algo de código (el agente sólo puede leer archivos en este modo - no escribir o ejecutar comandos)
minimal - cuando estás chateando o preguntando cosas que no necesitan contexto (sin capacidad de lectura/escritura)
La mayoría de las veces cambio entre escribir y preguntar, y un simple cmd+i hace que alternar sea super fácil (esta es una de las cosas que me gustan de zed - cada característica viene con prácticas combinaciones de teclas)

Nota: También puede crear su propio perfil personalizado: como escritura segura que es sólo un fork del perfil de escritura, pero con el permiso de borrado eliminado (por lo que no terminará borrando todo su proyecto un-git).

Asistente en línea


Esta es otra herramienta útil-te permite seleccionar una porción de código y pedirle a la IA que le haga cambios (ctrl + enter). Yo lo uso para ediciones rápidas como ajustar el nombre de una variable, arreglar algo de código en línea, generar consultas para ejecutar en psql cli, etc.

Nota: También puede utilizar `@Mentions` (No tengo ni idea de cómo se deduce que es logViewer api anterior)

La clave está en que el Asistente Inline sólo modifica la porción de código seleccionada. Nada fuera de ese ámbito se toca. Eso está muy bien para las ediciones enfocadas, pero también significa que no siempre es adecuado, especialmente si el cambio requiere la modificación en otros lugares también.

A veces también tiene errores, como envolver el resultado en etiquetas extrañas como {{REWRITTEN_CODE}}. Pero aparte de las peculiaridades, sigue siendo una herramienta útil para cambios rápidos y localizados.

Predicciones


Actualmente, Zed sólo soporta tres proveedores para el Asistente Inline: el propio Zed, Copilot y Supermaven. No soy un gran fan de las predicciones en general - pero a veces, cuando (he integrado copiloto) sugiere exactamente lo que tenía en mente, tengo esa extraña sensación de "ella me entiende".

Pero todavía no he hecho la configuración adecuada: Cuando las sugerencias de LSP y Copilot chocan, las cosas pueden complicarse. Y sinceramente, configurar todo eso me parece una tarea que me da pereza hacer.

Apoyo a proveedores de LLM

Zed soporta un número decente de proveedores LLM, lo cual es genial. Pero el tokenizador no me parece muy preciso - y a diferencia de Cline y otras herramientas, no muestra el coste incurrido por petición, que creo que es un detalle bastante útil de tener.

Nota: Puedes consultar la lista completa de proveedores LLM soportados aquí

Extensiones


Servidores MCP


Aún no hay muchos servidores MCP, pero me gusta especialmente el de Postgres. Me permite hacer preguntas sobre el esquema de una tabla dada sin la habitual gimnasia de copiar y pegar.

Solía volcar manualmente los esquemas de las tablas en ChatGPT sólo para averiguar cómo escribir una consulta join o alterar un campo. ¿Y ahora? Simplemente escribo /pg-schema  y sigo con cualquier pregunta - funciona muy bien. Incluso puedes añadir múltiples tablas en líneas posteriores antes de hacer tu consulta.

He añadido dos esquemas: "/pg-schema issue" y "/pg-schema thread" e hice una consulta

Dicho esto, sigue siendo un poco buggy. Por alguna razón, no muestra todas las tablas de mi base de datos. Además, no hay soporte para cambiar entre múltiples bases de datos - tienes que ajustar manualmente la configuración de tu Zed cada vez que quieras consultar una diferente.

Otras ideas:

  • Buen soporte para la mayoría de los idiomas
  • Buena integración con LSP
  • Buena colección de temas
  • Pero... todavía no hay muchas extensiones. Ni se acerca al ecosistema de VS Code
  • Trabajo en servidores remotos

Yo diría que Zed no ha alcanzado a VS Code en esta área todavía. El mayor problema al que me enfrento ahora mismo es el retardo al guardar archivos - tarda alrededor de 1-2 segundos en guardar un archivo, mientras que en VS Code es casi instantáneo.

Además, aún no hay soporte para Git en remoto. Todavía tengo que volver a VS Code sólo para ver los diffs, hacer commits, y hacer las cosas habituales de Git.

Todos: Todavía tengo que explorar las tareas, la colaboración en tiempo real, etc.

Reflexiones finales


Zed no es perfecto. Pero para alguien que era fiel a Neovim y desconfiaba mucho de los agentes de IA, ha sido una transición inesperadamente suave y emocionante. Todavía hay asperezas -especialmente en torno a los flujos de trabajo remotos y las extensiones limitadas-, pero ¿la experiencia principal? Rápida, intuitiva y realmente útil.

No digo que no vaya a volver nunca. Pero por ahora, me quedo.

Fuente