Deixando o Neovim e migrando para o Zed
(stevedylan.dev)- Todo desenvolvedor tem sua própria jornada com editores de texto e passa por um processo até chegar à ferramenta que usa hoje. Essas histórias são interessantes e despertam grande apreço pelas ferramentas de desenvolvimento e pelo esforço investido nelas
- Este texto foi escrito para compartilhar essa jornada com pessoas interessadas em ferramentas de desenvolvimento e encorajá-las a experimentar novas ferramentas
O início da jornada com editores de texto
- Comecei usando Atom e aprendendo o básico de HTML, CSS e Javascript
- Depois migrei para o VSCode, mas na época minha esposa precisava usar o notebook para editar fotos, e o MacBook que eu usava no lugar sofria com queda de desempenho por causa da build em Electron do VSCode
- Foi então que acabei descobrindo o Vim por acaso, e me encantei com o fluxo de trabalho centrado no teclado e com a velocidade, passando a estudá-lo
- No começo eu o usava mexendo no Vim RC, e depois conheci o Neovim por meio dos vídeos do chris@machine
- Usei Neovim por anos e tive uma produtividade alta. Gastei muito tempo ajustando a configuração, mas no fim cheguei a um estado em que quase não precisava mais mudar nada
Mudança
- Mas, com o passar do tempo, precisei continuar simplificando os arquivos de configuração, e mesmo para manter recursos básicos era necessário muito esforço
- Às vezes, sempre que eu atualizava plugins, o Neovim apresentava problemas, e eu acabava interrompendo o trabalho para gastar tempo resolvendo isso. Tentei simplificar a configuração para corrigir isso, mas o esforço para manter funcionalidades básicas ainda continuava
- Especialmente ao trabalhar em codebases grandes, o Neovim ficava lento e a tela travava, o que prejudicava minha produtividade
- Tentei trocar para outros emuladores de terminal, como Alacritty e Wezterm, mas não houve grande diferença
- Eu já tinha ouvido falar do Zed antes, mas como ele não era baseado em terminal, parei de usá-lo. Ainda assim, depois de ouvir avaliações positivas sobre a velocidade do Zed, decidi dar outra chance
- Depois de usá-lo todos os dias por 2 meses, a experiência com o Zed foi muito satisfatória, e pretendo continuar usando. Não penso em voltar para o Neovim
Experiência de uso com o Zed
- Para explicar por que escolhi o Zed, quero falar sobre a experiência geral de uso até aqui e sobre como o adaptei para combinar comigo
Tudo “simplesmente funciona”
- Uma das maiores vantagens do Zed é que “tudo simplesmente funciona”
- Especialmente recursos como o protocolo Language Server Protocol (LSP), que no Neovim exigem muito tempo de configuração, no Zed funcionam bem por padrão
- No Zed, atalhos como “ver definição”, “ir para definição” e “ações de código” vêm prontos por padrão, e como há suporte para a maioria das linguagens, raramente surgem problemas
Velocidade
- Um dos principais motivos para eu escolher o Zed foi a velocidade, e no fim fiquei muito satisfeito
- Ele funciona rápido mesmo em codebases grandes, sem atrasos, e até agora nunca enfrentei problemas de desempenho
- Talvez desse para deixar o Neovim ainda mais rápido, mas em vez de desperdiçar tempo buscando esse ganho de produtividade, é melhor simplesmente usar o Zed
Modo Vim
- Como usuário de Neovim, já tive a experiência frustrante de ver o plugin Vim do VSCode ser instável e cheio de bugs
- O modo Vim do Zed é um recurso criado pelos próprios desenvolvedores, muito estável e com bom suporte às funcionalidades importantes
- A estrutura de atalhos é muito flexível e oferece recursos que usuários de Vim provavelmente vão gostar
Recursos de IA
- O Zed também oferece recursos de IA e já vem com o Copilot integrado por padrão
- Também é possível usar modelos de IA como OpenAI, Ollama e Anthropic via API
- O recurso de assistente inline, em que você seleciona parte do código e chama o assistente de IA com
ctrl-enterpara escrever código, também é útil
Zed ≠ Neovim
- O Zed não consegue substituir completamente o Neovim. Um grande ponto forte do Neovim é existir nativamente no terminal
- Para edições rápidas em arquivos simples, o Neovim é mais prático, mas para sessões longas ou projetos, o Zed é perfeito
Ajustando o Zed para usuários de Neovim
O Zed não é um substituto completo do Neovim, mas é possível melhorar bastante a experiência para usuários de Neovim/Vim com vários pequenos ajustes que tornam o ambiente mais familiar
Modo Vim e atalhos
- A primeira coisa a fazer é ativar o modo Vim. O Zed oferece uma página de documentação sobre o modo Vim, explicando os atalhos padrão do Vim e como adicionar configurações extras
- Uma das grandes vantagens do Zed é poder configurar atalhos de acordo com o modo Vim. Por exemplo, é possível aplicar atalhos diferentes nos modos “Normal” e “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"
}
},
]
- Além disso, você pode configurar atalhos para alternar entre painéis no Zed e criar um fluxo de trabalho parecido com o do 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"]
}
},
]
- Também vale a pena consultar o keymap padrão do Vim para ajustar o que for necessário. O keymap padrão do Vim é uma referência útil sobre o que o Zed oferece e o que pode precisar de ajustes
Interface simplificada
- O Zed já oferece uma interface mínima, mas se você preferir algo mais parecido com uma configuração de Neovim, pode desativar a barra de abas, a barra de rolagem, a toolbar e outros 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
},
}
Alternativas a plugins
- No Zed, você pode usar o alternador de abas (Toggle) para navegar entre arquivos ou buffers com uma funcionalidade parecida com a do Telescope
{
"context": "Editor && VimControl && !VimWaiting && !menu",
"bindings": {
"space o": "tab_switcher::Toggle",
}
}
- A busca no projeto inteiro funciona como substituta do Telescope, permitindo ver os resultados em uma visualização com múltiplos buffers e navegar por eles com facilidade
- O toggle do terminal é parecido com o do VSCode, mas no Zed também existe a opção de abrir o terminal como buffer na visão principal de edição
{
"context": "Editor && VimControl && !VimWaiting && !menu",
"bindings": {
"space t": "workspace::NewCenterTerminal",
}
}
- Ele não substitui completamente o Tmux nem a troca de projetos, mas o recurso de alternância de projetos do Zed faz esse trabalho muito bem
{
"context": "Workspace",
"bindings": {
"cmd-k": [
"projects::OpenRecent",
{
"create_new_window": false
}
]
}
}
Vale a pena usar o Zed?
- Se você está pensando em experimentar o Zed, recomendo usá-lo por alguns dias
- O Zed é um editor de texto singular e competente, e no fim o que importa é a ferramenta que aumenta sua produtividade
- Isso pode acabar sendo VS Code, JetBrains ou até EMacs
- Escolha a ferramenta que mais combina com você, mas espero que você não seja rígido demais a ponto de deixar de experimentar coisas novas
3 comentários
Opiniões no Hacker News
No começo gostei do Zed, mas, ao focar em colaboração e recursos de IA, ele acabou ficando menos útil por faltar funcionalidades como editor principal
O motivo de usar Helix é que tentei migrar do VSCodium para Vim ou Neovim, mas configurar plugins foi difícil
Recentemente migrei do Vim para o Zed e acho que o Zed é excelente em vários aspectos
Ao usar o Zed, gosto muito da velocidade e da UI limpa
Há 6 meses migrei do VSCode para o Zed, mas recentemente voltei para o Neovim
Espero que o Zed fique mais polido e estável
Fico curioso se você já experimentou distribuições de Neovim
Se você quer Neovim de verdade no VSCode, recomendo dar uma olhada no
vscode-neovimPassei a me interessar por Kakoune e Helix e escrevi uma extensão de edição modal para o VSCode
Quando explorei o Zed no macOS, tive a impressão de que era um editor rápido e rico em recursos
Eu também mudei recentemente para o Helix.
Como na opinião do Hacker News, eu não usava todos os plugins no NeoVim antigo, então resolvi testar o Helix e acabei migrando na hora. Mas o tema de cores realmente é chocante
Isso quer dizer que você não curtiu o tema padrão por ele ser bem roxinho? :eyes: