Migrei do VS Code para o VIM
Tags: vim, vscode, javascript, typescript
Published: 2021-05-23 02:04:29

#Uma mudança gradativa...
Pois é, hoje temos como padrão de editor de código para várias e várias linguagens, é Visual Studio Code, VS Code.
É um ótimo editor de texto, muito mais produtivo e mais simples de se utilizar do que IDE's como Eclipse, IntelliJ (e sua família que inclui o pesadíssimo Android Studio), ou até o NetBeans (eu sou velho, mas conheço quem use ainda kkkk).
Porém, desde o início deste ano, me propus ao desafio de entender, configurar e então usar de forma produtiva o VIM, como meu editor de código/IDE para desenvolver minhas aplicações com TypeScript.

#VIM não é para todos
Se você não tem paciência e muito menos vontade de aprender coisas novas, o VIM não é feito para você.Não é uma crítica, mas uma verdade.

#Básico do básico
###DISCLAIMER: ISSO NÃO É UM TUTORIAL, SÓ UMA EXPLICAÇÃO BÁSICA DE COMO USAR O VIM PARA GRAVAR UM ARQUIVO.

A primeira coisa que você vai precisar aprender para usar o VIM é entender que tudo se baseia em uso de teclado e seu fluxo de trabalho é diferente, pois, não é simplesmente abrir e sair escrevendo código.
Supondo que você já tenha instalado VIM na sua máquina, basta abrir um terminal e digitar o comando vim.
Ao abrir um arquivo, por padrão você vai estar no modo `NORMAL`.Para editar, pressionando a tecla i você vai entrar no modo INSERT. 
Ai então, você vai conseguir inserir um texto ou seu código.Para salvar esse arquivo, você vai pressionar a tecla `ESC`, para retornar ao modo NORMAL e em seguida pressione a combinação de teclas `:w nomedoarquivo.ts`. O comando `:w` vai salvar o arquivo. Para sair do VIM, só pressionar a combinação `:q`. 
Pronto. Você criou um arquivo, salvou e saiu do vim.

#Cenário do Caos
Eu usei muito o VSCode, as vezes 3, 4 projetos abertos em janelas diferentes. Quem usa o VSCode sabe que ele não é tão leve assim.
O cenário do caos: notebook i5 8th gen, com 8GB, rodando a distro Linux Pop! OS sem SWAP de memória, somando um Chrome cheio de abas abertas, docker rodando com bancos de dados e aplicações padrões do sistema. Resultado: Sistema travando por completo e desligamento forçado.
Ai inseri um SWAP. Não travou mais, mas as coisas ficaram lentas, bemmmm lentas.
Fui pra solução mais obvia: upgrade para 20GB de memória.Ai fiquei tranquilo, já podia abrir meu cenário do caos sem ser um caos.
Mas ai migrei para um PC de mesa e entreguei o note para minha esposa.
O PC com Ryzen 5 2600 OC @3.9GHz, 16GB 3200MHz, SSD NVME 512GB e uma GTX 760 2GB agora só meu, rodando também POP! OS, ainda sofrendo com o mesmo cenário do caos.
Mas e ai, qual a boa pra ter mudado?

Usar a máquina sempre no talo, sem nenhuma folguinha me deixa incomodado, porque as vezes pode acontecer de ter que abrir um projeto a mais, mais uma outra instancia do docker rodando um banco de dados pesado, ai tem que ficar fechando coisas para poder abrir outras, não dá né.
Um projeto, 16 processos, quase 1GB de memória alocada:
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vwav06927mra22k7y8dh.png)
É muito memória bicho!

Pesquisei outras alternativas: Atom, Sublime e outras que nem lembro o nome, mas que eram pesadas ou tão mais pesadas quanto o VSCode.
Relutei sobre o fato de aprender do zero sobre VIM, tentei várias vezes, mas não conseguia me acostumar com o básico.
Em fevereiro, decidi acompanhar um curso muito top do Waldemar Neto chamado "DO ZERO A PRODUÇÃO: APRENDA A CONSTRUIR UMA API NODE.JS COM TYPESCRIPT ", onde ele utilizava só VIM para desenvolver.

MOMENTO JABA GRÁTIS: Se você quiser saber mais sobre o curso, que é de grátis, acesse esse [link](https://www.youtube.com/playlist?list=PLz_YTBuxtxt6_Zf1h-qzNsvVt46H8ziKh) da playlist no YouTube. O Waldemar trabalha na Atlassian, que desenvolve o Jira, o Trello e o BitBucket.

Foi então que tomei coragem e pulei de cabeça pra dentro do VIM. Comecei entendendo sobre os modos. Depois usei o próprio VIM para configura-lo através do arquivo de sistema .vimrc, onde ficam todas as configurações de plugins, temas, atalhos e tudo mais.
Desenvolvi toda a aplicação do curso usando o VIM, me adaptando ao seu fluxo de trabalho e digo pra quem quiser: VIM é top!

O uso de memória é muitoo menor, da uma olhada no mesmo projeto que mostrei antes, agora no VIM:
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/us3ocf9if1ecgbj9if1c.png)
Somando os dois plugins, menos de 300mb, muito menos né?

#ABANDONEI O VSCODE PRA SEMPRE?
Sim e não. Sim porque agora que passou a fase de adaptação com fluxo de trabalho, consigo fazer tudo que eu fazia normalmente no VSCode, usando apenas atalhos e comandos via teclado.
Não, porque eu as vezes sinto uma falsa impressão que o VSCode ainda é melhor, principalmente para pesquisar arquivos e tudo mais. Mas o VIM tem plugins incríveis para tudo o que você imaginar, sério.

#VERIDICTUM
Precisei de muita disciplina, força de vontade, pesquisas no Google e paciência para chegar até aqui. Foram muitas horas gastas para aprender o básico, ficar mexendo nas configurações para deixar o mais funcional e prático possível.
Se compararmos ao VSCode, não pesa praticamente nada ter uma pasta aberta no VIM, fora que eu não preciso sair do terminal pra rodar testes ou outros comandos em uma segunda aba.
Por fim, digo mais uma vez: se estiver disposto a passar pela curva de aprendizado, é uma mudança sem volta.
Abraço e até o próximo post.


Se gostou Compartilhe! Também deixa um comentário caso encontrou algum erro ou queria mais detalhes de como fiz essa mudança :)