Estou mudando do VS Code para o Vim
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.





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)