Dejo Neovim y me cambio a Zed
(stevedylan.dev)- Todo desarrollador tiene su propio recorrido con los editores de texto y pasa por un proceso hasta llegar a la herramienta que usa hoy. Estas historias son interesantes y generan un gran aprecio por las herramientas de desarrollo y por el esfuerzo invertido en ellas
- Este texto fue escrito para compartir ese recorrido con quienes se interesan por las herramientas de desarrollo y para animarlos a experimentar con herramientas nuevas
El inicio del recorrido con los editores de texto
- Empecé usando Atom mientras aprendía los fundamentos de HTML, CSS y Javascript
- Luego me cambié a VSCode, pero en ese tiempo mi esposa necesitaba usar la laptop para editar fotos, y la MacBook que usé en su lugar tenía problemas de rendimiento por la build de Electron de VSCode
- En ese momento descubrí Vim por casualidad, y quedé fascinado con su flujo de trabajo centrado en el teclado y su velocidad, así que empecé a aprenderlo
- Al principio lo usaba modificando mi Vim RC, y después conocí Neovim gracias a los videos de chris@machine
- Usé Neovim durante años con una productividad muy alta. Invertí mucho tiempo afinando la configuración, pero al final llegué a un punto en el que casi ya no era necesario cambiar nada
El cambio
- Pero con el paso del tiempo tuve que seguir simplificando los archivos de configuración, y aun así hacía falta bastante esfuerzo solo para mantener las funciones básicas
- A veces, cada vez que actualizaba un plugin, Neovim empezaba a fallar y terminaba perdiendo tiempo deteniendo mi trabajo para resolver el problema. Intenté simplificar la configuración para arreglarlo, pero seguía siendo necesario dedicar esfuerzo para mantener las funciones esenciales
- Sobre todo al trabajar en codebases grandes, Neovim se volvía lento y la pantalla llegaba a congelarse, lo que afectaba mi productividad
- Intenté cambiar a otros emuladores de terminal, como Alacritty y Wezterm, pero no hubo una gran diferencia
- Ya había oído hablar de Zed antes, pero como no estaba basado en terminal, dejé de usarlo. Sin embargo, al escuchar comentarios positivos sobre su velocidad, decidí darle otra oportunidad
- Después de usarlo todos los días durante 2 meses, la experiencia con Zed me resultó muy satisfactoria y planeo seguir usándolo. No tengo intención de volver a Neovim
Experiencia usando Zed
- Para explicar por qué elegí Zed, quiero contar cómo ha sido la experiencia de uso en general hasta ahora y cómo lo adapté a mi forma de trabajar
Todo "simplemente funciona"
- Una de las mayores ventajas de Zed es que "todo simplemente funciona"
- En especial, funciones como el protocolo Language Server Protocol (LSP), que en Neovim requieren bastante tiempo de configuración, en Zed funcionan bien desde el inicio
- En Zed, atajos como "ver definición", "ir a la definición" y "acciones de código" vienen incluidos por defecto, y como soporta la mayoría de los lenguajes, no suele haber problemas
Velocidad
- Una de las razones principales para elegir Zed fue su velocidad, y el resultado me dejó muy satisfecho
- Incluso en codebases grandes funciona rápido y sin retrasos, y hasta ahora no he tenido problemas de rendimiento
- Tal vez podría hacer que Neovim fuera más rápido, pero es mejor usar Zed que perder tiempo intentando mejorar la productividad a costa de más ajustes
Modo Vim
- Como usuario de Neovim, ya había tenido la decepcionante experiencia de usar el plugin Vim de VSCode, que era inestable y tenía muchos bugs
- El modo Vim de Zed es una función creada directamente por sus desarrolladores, es muy estable y soporta bien las funciones importantes
- La estructura de atajos es muy flexible y ofrece funciones que probablemente les gusten a los usuarios de Vim
Funciones de IA
- Zed también ofrece funciones de IA y trae Copilot integrado por defecto
- Es posible usar modelos de IA de OpenAI, Ollama, Anthropic y otros mediante API
- También resulta útil la función de asistente inline, donde puedes seleccionar parte del código e invocar al asistente de IA con
ctrl-enterpara que escriba código
Zed ≠ Neovim
- Zed no puede reemplazar por completo a Neovim. Una de las mayores fortalezas de Neovim es que existe de forma nativa en la terminal
- Para ediciones simples de archivos, Neovim sigue siendo más práctico, pero para sesiones largas o proyectos, Zed es perfecto
Ajustar Zed para usuarios de Neovim
Aunque Zed no es un reemplazo total de Neovim, es posible mejorar mucho la experiencia para usuarios de Neovim/Vim mediante varios ajustes pequeños que crean un entorno más familiar
Modo Vim y atajos de teclado
- Lo primero que hay que hacer es activar el modo Vim. Zed ofrece una página de documentación sobre el modo Vim, donde explica los atajos básicos de Vim y cómo hacer configuraciones adicionales
- Una gran ventaja de Zed es que permite configurar atajos según el modo Vim. Por ejemplo, se pueden aplicar atajos distintos en modo "Normal" y en modo "Visual"
[
{
"context": "Editor && VimControl && !VimWaiting && !menu",
"bindings": {
"space b": "editor::ToggleGitBlame",
"shift-k": "editor::Hover",
"space l f": "editor::Format",
"space d": "diagnostics::Deploy",
"space f f": "file_finder::Toggle",
"space o": "tab_switcher::Toggle",
"space e": "workspace::ToggleLeftDock",
"space /": "workspace::NewSearch",
"n": "search::SelectNextMatch",
"shift-n": "search::SelectPrevMatch",
"space t": "workspace::NewCenterTerminal",
"g b": "editor::ToggleComments",
"+ +": "workspace::Save",
"space c": "pane::CloseActiveItem"
}
},
{
"context": "Editor && vim_mode == visual && !VimWaiting && !VimObject",
"bindings": {
"shift-j": "editor::MoveLineDown",
"shift-k": "editor::MoveLineUp"
}
},
]
- Además, puedes configurar atajos para cambiar entre paneles en Zed y así crear un flujo de trabajo más parecido al de Neovim
[
{
"context": "Dock || Terminal || Editor",
"bindings": {
"ctrl-h": ["workspace::ActivatePaneInDirection", "Left"],
"ctrl-l": ["workspace::ActivatePaneInDirection", "Right"],
"ctrl-k": ["workspace::ActivatePaneInDirection", "Up"],
"ctrl-j": ["workspace::ActivatePaneInDirection", "Down"]
}
},
]
- También se recomienda consultar el keymap predeterminado de Vim para ajustar lo necesario. El keymap predeterminado de Vim es una referencia útil sobre lo que Zed soporta y lo que conviene adaptar
Interfaz simplificada
- Zed ya ofrece una interfaz mínima, pero si prefieres una UI más parecida a tu configuración de Neovim, puedes desactivar la barra de pestañas, la barra de desplazamiento, la barra de herramientas y otros elementos
{
"cursor_blink": false,
"relative_line_numbers": true,
"scrollbar": {
"show": "never"
},
"vertical_scroll_margin": 0,
"tab_bar": {
"show": false
},
"toolbar": {
"breadcrumbs": true,
"quick_actions": false
},
}
Reemplazos de plugins
- En Zed, para navegar entre archivos o buffers con una función similar a Telescope, puedes usar el tab switcher (
Toggle)
{
"context": "Editor && VimControl && !VimWaiting && !menu",
"bindings": {
"space o": "tab_switcher::Toggle",
}
}
- La búsqueda en todo el proyecto funciona como reemplazo de Telescope, permitiendo ver resultados en una vista de múltiples buffers y navegar fácilmente entre ellos
- El toggle de terminal es similar al de VSCode, pero en Zed también existe la opción de abrir la terminal como buffer dentro de la vista principal del editor
{
"context": "Editor && VimControl && !VimWaiting && !menu",
"bindings": {
"space t": "workspace::NewCenterTerminal",
}
}
- No puede reemplazar por completo a Tmux ni a las funciones de cambio de proyecto, pero la función de cambio de proyecto de Zed hace este trabajo bastante bien
{
"context": "Workspace",
"bindings": {
"cmd-k": [
"projects::OpenRecent",
{
"create_new_window": false
}
]
}
}
¿Deberías usar Zed?
- Si estás pensando en probar Zed, te recomiendo usarlo durante algunos días
- Zed es un editor de texto único y muy capaz, y al final lo importante es usar una herramienta que aumente tu productividad
- Esa herramienta podría ser VS Code, JetBrains o incluso EMacs
- Elige la herramienta que mejor se adapte a ti, pero ojalá no seas demasiado terco como para negarte a probar algo nuevo
3 comentarios
Opinión de Hacker News
Al principio me gustó Zed, pero al enfocarse en colaboración y funciones de IA, le faltan capacidades como editor básico y se volvió menos útil
La razón por la que uso Helix es que intenté pasar de VSCodium a Vim o Neovim, pero configurar los plugins fue difícil
Recientemente cambié de Vim a Zed, y creo que Zed es excelente en muchos aspectos
Cuando uso Zed, disfruto mucho lo rápido que es y lo limpia que se ve la UI
Hace 6 meses cambié de VSCode a Zed, pero recientemente volví a Neovim
Espero que Zed se pula más y se estabilice
Me pregunto si ya probaste alguna distribución de Neovim
Si quieres un Neovim de verdad dentro de VSCode, te recomiendo revisar
vscode-neovimMe interesaron Kakoune y Helix, así que escribí una extensión de edición modal para VSCode
Cuando exploré Zed en macOS, me dio la impresión de ser un editor rápido y con muchas funciones
Yo también me cambié recientemente a Helix.
Como en el comentario de Hacker News, no aprovechaba todos los plugins que tenía en NeoVim, así que probé
helixy me cambié de inmediato. La paleta de colores sí que impacta bastante.¿Quieres decir que no te gusta porque el tema predeterminado es demasiado morado? :eyes: