Estou mudando do VS Code para o Vim

Dec 14 2022
Desde que comecei a programar profissionalmente em 2015, ouço falar muito bem do VIM. As pessoas que o utilizam juram pela sua eficiência e pelo aumento de produtividade que proporciona.

Desde que comecei a programar profissionalmente em 2015, ouço falar muito bem do VIM. As pessoas que o utilizam juram pela sua eficiência e pelo aumento de produtividade que proporciona. Eu também sempre achei o Vim legal, mas o que me impediu de tentar foi a curva de aprendizado. E com o VS Code fazendo tudo e mais um pouco para mim, parecia que nunca faria.

Em primeiro lugar, não tenho dúvidas de que, quando se trata de eficiência “bruta” e velocidade de escrever/editar código, o Vim me deixaria muito mais rápido. No entanto, acredito que quando se trata de programação, a velocidade de digitação nunca é o gargalo, mas a velocidade de pensamento é. Apesar da minha opinião pessoal, quero experimentar nos próximos 30 dias e ver se estou perdendo. Mas antes de fazer isso, quero mencionar que tipo de trabalho faço e o que considero crucial para mim em um editor.

O que eu faço?

Bem, meu trabalho consiste principalmente em trabalhar com serviços de back-end escritos em TypeScript. Normalmente, tenho que abrir e trabalhar em vários projetos ao mesmo tempo, além de abrir várias janelas de terminal em caminhos diferentes. Há também muitos testes e geração de código GraphQL envolvidos.

O que é crucial para mim em um editor?

Algumas das coisas que eu realmente aprecio em um editor são as seguintes.

  • Ele deve me mostrar erros e avisos de linting
  • Devo ser capaz de rastrear facilmente quais buffers/arquivos estão abertos e alternar entre eles rapidamente
  • Não deve atrapalhar meu trabalho para que eu possa me concentrar no trabalho
  • Boa integração com git é bem-vinda
  • Deve suportar o servidor de idiomas para texto datilografado e recursos como 'ir para definição', 'encontrar todas as referências'
  • Deve suportar formatação de código
  • E, finalmente, deve ser rápido para que eu possa manter várias instâncias abertas sem diminuir a velocidade
  • Ele permite que você trabalhe diretamente em contêineres docker usando a extensão Dev Container ou WSL Extension para trabalhar no ambiente Linux se você estiver no Windows e na extensão Remote Explorer para Ssh
  • compartilhamento ao vivo para programação em par
  • Muitas e muitas extensões para quase todos os idiomas
  • Emmet e suporte para extensões de snippet
  • Extensão GitHub CoPilot
  • Extensões que possuem RestClients
  • E muito mais que não uso, mas posso, se quiser, com o mínimo de configuração necessária.

Configuração inicial:

Então instalei o NeoVim, segui alguns tutoriais para habilitar algumas configurações básicas como relative line numbers, instalei VimPlugpara gerenciar plugins, instalei cocpara servidores de idiomas, algumas outras extensões e NERDTree para torná-lo semelhante ao VSCode. Aqui está meu init.vim para quem estiver interessado:https://github.com/osamaishtiaq/dev-settings/blob/main/init.vim

Abaixo está a aparência da minha configuração atual

O servidor de idiomas para texto datilografado funciona bem, quase tão bom quanto o código VS (quase). Fico feliz em informar que 'ir para a definição' e 'encontrar todas as referências' funcionam bem. Linting também parece funcionar, pois posso ver a contagem de erros no canto inferior direito da barra de status. No entanto, não é perfeito porque raramente vejo mensagens pop-up de informações ao passar o mouse. Para isso eu tenho que usar o messagescomando. Também estou usando Tmuxpara trabalhar com várias janelas de terminal e instalei Itermo terminal porque ouvi dizer que ele tem melhor suporte a cores do que o terminal padrão do macos. Excluí o VS Code e, se tudo correr bem, talvez nunca mais precise instalá-lo.

Atualização (14 de dezembro de 2022):

Tive que reinstalar o VS Code… O motivo é como os buffers funcionam no vim e não consigo encontrar uma correção no momento. O NERDTree não destaca quais buffers estão abertos no momento e não consegui encontrar uma boa maneira de ver quais arquivos foram modificados apenas olhando para o NERDTree ou qualquer outro lugar. Portanto, em vez de usar totalmente o Vim, agora instalei a extensão Vim para VS Code como backup. Vou tentar usar o Vim, mas caso algo simplesmente não funcione e eu não tenha tempo para consertar, reverterei temporariamente para o VS Code com a extensão do Vim. Mais atualizações a seguir.