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: 22.980 ]

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

Minha caixa de ferramentas no GNU/Linux

DesignCap - Ferramenta de design gráfico para leigos

Python - Usando requests anônimos através da rede Tor

SimpleScreenRecorder - Gravar Vídeos do seu Desktop

A trajetória do Viva o Linux - retrospectiva 2003/2004

Leitura recomendada

Utilizando o Buffer de Gravação no Editor Vim

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

GitHub Copilot - Inteligência Artificial no NeoVim

Utilização do Vim para iniciantes

  
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