DEV Community

Cezar Augusto Mezzalira
Cezar Augusto Mezzalira

Posted on

Migrei do VS Code para o VIM

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
É 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 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
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 :)

Top comments (3)

Collapse
 
leob profile image
leob

I don't really know Portuguese, but I'm able to comprehend just enough to get the gist of this. But hey, this is my thought: it doesn't have to be either/or - it can be both. I'm a happy VSCode user, but I also fire up my VIM a few dozen times per day for small editing tasks. It's just useful to have another tool at one's disposal.

Collapse
 
cezarmezzalira profile image
Cezar Augusto Mezzalira

Hey Leo! Thanks for your reply!
I'm use both, because sometimes the habit to find or edit something kickly forces me to use VSCode.
But, both are only tools, and it's better to know enough about them, to use in scenarios like Linux server, where te only thing we have is shell.
Thank you again!

Collapse
 
leob profile image
leob

Completely agree! I also use both.