Como Turbinar sua Produtividade com VIM - Guia Definitivo do Desenvolvedor

Vamos transformar o VIM em uma IDE à la Visual Studio Code, combinando o que há de melhor entre os dois mundos. No final teremos um "juggernaut" VIM, pronto para turbinar sua produtividade em definitivo como desenvolvedor.

[ Hits: 24.265 ]

Por: Fábio Berbert de Paula em 28/07/2020 | Blog: https://fabio.automatizando.dev


Introdução



Não canso de dizer, Vim é o melhor editor de textos do mundo! Ele possui tantos recursos e uma capacidade tão grande de personalização, que ao dominá-lo o desenvolvedor eleva sua produtividade a níveis inimagináveis.

E não me venha citar o Emacs, que realmente foi um concorrente à altura por décadas, mas que hoje em dia certamente perdeu a guerra. Tanto no quesito modernidade quanto em popularidade.

NOTA: para quem não sabe, a rivalidade entre Vim e Emacs era tão grande que ela ganhou definição própria, a famosa "Editor War", ganhando inclusive página na Wikipédia: Editor war - Wikipedia

Eu diria que existem três fases de um usuário de Vim:
  1. Tomar coragem de abri-lo pela primeira vez
  2. Aprender a sair dele (a mais traumática!!! o famoso :q)
  3. Dominar seus recursos (a mais demorada)

Apesar da curva de aprendizado do Vim ser maior que a da maioria das outras IDEs, para o resultado final o esforço recompensa, te garanto!

Outro motivo para sua adoção é o fato de ser um editor multiplataforma, você conseguirá montar seu ambiente de desenvolvimento no sistema operacional que tiver de trabalhar. Vim está disponível para Linux, Windows, macOS, OS/2, Amiga, Unix dentre outros.

Também vale citar o desempenho, Vim é infinitamente mais leve que as principais IDEs do mercado, como Eclipse, Visual Studio Code, PyCharm etc.

Além disso o Vim é modular, você vai instalando e carregando somente o que deseja utilizar.

Sua instalação é trivial e super bem documentada, vou deixar por sua conta baixar e instalar o Vim na versão 8.1 ou superior em sua distribuição Linux predileta ou qualquer outro sistema operacional que esteja usando. Em caso de dúvidas, comece por:

Vídeo

Este guia é enorme e em muitos casos é mais conveniente você ver a configuração na prática para entender melhor. Sendo assim você tem duas opções, seguir com a leitura do guia ou assistir ao vídeo que gravei para o canal Cotidiano Hackeado, segue o vídeo:

O início

Abaixo temos a tela inicial do Vim sem nenhum tipo de configuração:

vim
Para continuarmos nossa jornada, vamos baixar o código-fonte de um repositório qualquer para demonstrarmos como funcionarão os recursos que iremos instalar e configurar na IDE. Escolha um diretório de trabalho em sua máquina e clone o seguinte projeto:

git clone https://github.com/fberbert/CorridaDosNerds

NOTA: essa etapa é OPCIONAL, você não precisa baixar o repositório acima. Ele será usado para demonstração. Entre no diretório do projeto e abra o arquivo App.js:

cd CorridaDosNerds
vim App.js

Essa é a cara do Vim "vanilla":
O processo de turbinação do Vim será realizado de duas formas:
  • configurações personalizadas no arquivo .vimrc
  • instalação de plugins de terceiros

Para quem não sabe, .vimrc é o arquivo de configuração do editor. Seu caminho varia de acordo com o sistema operacional, vide ":help vimrc":
Resumindo:
  • Linux: $HOME/.vimrc ou $HOME/.vim/vimrc
  • macOS: $HOME/.vimrc ou $HOME/.vim/vimrc
  • Windows: $HOME/_vimrc ou $HOME/vimfiles/vimrc

Para listar todos os scripts carregados em seu editor, inclusive o seu arquivo de configuração .vimrc (se já existir um), digite:

:scriptnames

Isso irá inclusive tirar suas dúvidas com relação aos caminhos de arquivos em seu sistema operacional.

Para o decorrer deste guia precisamos ter certeza de duas coisas:
  • caminho do seu .vimrc
  • caminho do seu diretório particular do Vim (Linux e macOS: $HOME/.vim | Windows: $HOME/vimfiles)

Então bora lá, iniciar nossa jornada!?

    Próxima página

Páginas do artigo
   1. Introdução
   2. Primeiras configurações no .vimrc e instalação de plugins
   3. Plugins de aprimoramento visual
   4. Explorador de arquivos NERDTREE
   5. Barra de status com vim-airline
   6. Abrir arquivos com "Ctrl + p" à la Visual Studio Code
   7. Comentários automáticos com nerdcommenter
   8. emmet-vim - expansão inteligente
   9. vim-ale - análise de código
   10. vim-polyglot - syntax highlight avançado
   11. coc.nvim - Intellisense para Vim
   12. vimrc completo
   13. Conclusão
Outros artigos deste autor

Criando Aplicativos Mobile com React Native

Se preparando para obter certificação LPI

Entrevista com um hacker, via Internet

Viva o Linux finalmente de volta!

Enviando mensagens de WhatsApp no Linux usando Shell Script e ADB

Leitura recomendada

Utilização do Vim para iniciantes

GitHub Copilot - Inteligência Artificial no NeoVim

Como preparar o Vim/Neovim para corrigir ortografia em português

Compilação e instalação do Vim e habilitando a copiar e colar com o mouse

Utilizando o Buffer de Gravação no Editor Vim

  
Comentários
[1] Comentário enviado por removido em 28/07/2020 - 14:43h

Muito bom! Estava esperando esse artigo!

[2] Comentário enviado por maurixnovatrento em 28/07/2020 - 23:30h


Eu também. Muito bom.

___________________________________
Conhecimento não se Leva para o Túmulo.

[3] Comentário enviado por leoCCB em 29/07/2020 - 12:33h

Rapaz, isso não é um mero artigo: É basicamente um curso completo. Muito bom! Congratulações.

[4] Comentário enviado por cizordj em 30/07/2020 - 14:41h

Eu programo com o Vim há um ano, vou salvar este artigo pra depois :P

[5] Comentário enviado por maurixnovatrento em 30/07/2020 - 22:08h


Não tá pegando o syntax on.

___________________________________
Conhecimento não se Leva para o Túmulo.

[6] Comentário enviado por maurixnovatrento em 30/07/2020 - 22:09h


A minha versão é mais atual e mesmo assim tô tendo problemas. Vou ter que compilar?

___________________________________
Conhecimento não se Leva para o Túmulo.

[7] Comentário enviado por fabio em 30/07/2020 - 23:04h


[5] Comentário enviado por mauricio123 em 30/07/2020 - 22:08h


Não tá pegando o syntax on.

___________________________________
Conhecimento não se Leva para o Túmulo.


Tem o "vi" e o "vim". O syntax funciona no vim (vi improved).

[8] Comentário enviado por maurixnovatrento em 31/07/2020 - 00:24h


Sim era com o vim que eu testei. Mas, resolvi. Desinstalei a versão do mint e compilei a versão mais atual 8.2, aí sim funcionou. Agora tá indo as coisas.

___________________________________
Conhecimento não se Leva para o Túmulo.

[9] Comentário enviado por removido em 31/07/2020 - 08:39h


[8] Comentário enviado por mauricio123 em 31/07/2020 - 00:24h


Sim era com o vim que eu testei. Mas, resolvi. Desinstalei a versão do mint e compilei a versão mais atual 8.2, aí sim funcionou. Agora tá indo as coisas.

___________________________________
Conhecimento não se Leva para o Túmulo.


Estranho... uso o vim dos repositórios do mint e aqui funcionou 100%...

[10] Comentário enviado por maurixnovatrento em 31/07/2020 - 08:59h


Usei o mesmo vimrc pra garantir que não era erro. Talvez você instalou algo a mais no vim e que eu não instalei.

___________________________________
Conhecimento não se Leva para o Túmulo.

[11] Comentário enviado por maurixnovatrento em 31/07/2020 - 09:01h


Porém, me serviu de aprendizado. Compilei o vim e vou guardá-lo no git.

___________________________________
Conhecimento não se Leva para o Túmulo.

[12] Comentário enviado por removido em 31/07/2020 - 09:22h


[10] Comentário enviado por mauricio123 em 31/07/2020 - 08:59h


Usei o mesmo vimrc pra garantir que não era erro. Talvez você instalou algo a mais no vim e que eu não instalei.

___________________________________
Conhecimento não se Leva para o Túmulo.


Tenho esses packages instalados:
% dpkg -l | grep vim | awk '{ print $2}'
vim
vim-addon-manager
vim-common
vim-nox
vim-runtime
vim-tiny

[13] Comentário enviado por maurixnovatrento em 31/07/2020 - 09:35h


Eu não tinha tudo isso. O meu tá assim, já que eu gerei o pacote deb. Deve ter tudo isso integrado na minha compilação.

dpkg -l | grep vim | awk '{ print $2}'
vim

Até prefiro assim, é melhor pra gerenciar.
___________________________________
Conhecimento não se Leva para o Túmulo.

[14] Comentário enviado por maurixnovatrento em 31/07/2020 - 09:58h


Nossa. o coc pediu o node.

___________________________________
Conhecimento não se Leva para o Túmulo.

[15] Comentário enviado por maurixnovatrento em 31/07/2020 - 10:25h


Quem vai usar o vim no Mint instale o nodejs.

___________________________________
Conhecimento não se Leva para o Túmulo.

[16] Comentário enviado por maurixnovatrento em 31/07/2020 - 10:28h


[15] Comentário enviado por mauricio123 em 31/07/2020 - 10:25h


Quem vai usar o vim no Mint instale o nodejs.

___________________________________
Conhecimento não se Leva para o Túmulo.


Isso para o coc.nvim

[17] Comentário enviado por maurixnovatrento em 31/07/2020 - 12:54h


Para o nodejs também vai precisar do npm.

___________________________________
Conhecimento não se Leva para o Túmulo.

[18] Comentário enviado por fabio em 31/07/2020 - 13:37h

Maurício, precisa do pacote vim-tiny. Por isso não tinha nem o syntax.

[19] Comentário enviado por maurixnovatrento em 31/07/2020 - 19:29h


[18] Comentário enviado por fabio em 31/07/2020 - 13:37h

Maurício, precisa do pacote vim-tiny. Por isso não tinha nem o syntax.


Beleza, fica como dica para quem for seguir o tutorial, porque agora já tá compilado e configurado e funcionando. Só to apanhando do jedi-language-server, só porque não quero usar o pip. Sei i nome do pacote em deb, mas tá na versão 0.15 e o que precisa é a 0.19 pra cima. Aí complica.

[20] Comentário enviado por maurixnovatrento em 31/07/2020 - 19:30h


Outra coisa, tem plugin ctrl+z?

___________________________________
Conhecimento não se Leva para o Túmulo.

[21] Comentário enviado por maurixnovatrento em 31/07/2020 - 19:31h


E o terminal integrado?

___________________________________
Conhecimento não se Leva para o Túmulo.

[22] Comentário enviado por removido em 02/08/2020 - 15:06h

Pergunta: Você recomenta criar um vimrc monolítico ou modular?

Esse aqui é o meu https://github.com/realdanilomarto/vimrc.git

[23] Comentário enviado por fabio em 03/08/2020 - 02:11h


[22] Comentário enviado por realdanilomarto em 02/08/2020 - 15:06h

Pergunta: Você recomenta criar um vimrc monolítico ou modular?

Esse aqui é o meu https://github.com/realdanilomarto/vimrc.git


Acho que depende do tamanho do seu vimrc. E isso é algo bem pessoal também. Meu vimrc é monolítico, exceto pelo coc.nvimrc que está em arquivo separado. Gostei da organização do teu.

[24] Comentário enviado por retro em 06/08/2020 - 14:36h

artigo incrível, mas mesmo assim prefiro usar o nano
mas quem sabe um dia eu acabo me interessando em usar o vim né

~mudei pro lubuntu, TÁ EM SHOCK? mas o debian continua em meu coração UwU

[25] Comentário enviado por Calebss em 01/12/2020 - 00:11h

O artigo que faltava! Muito bom!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts