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.959 ]

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


Plugins de aprimoramento visual



Nesta página irei abordar os plugins que uso para aprimoramento visual do editor. Posteriormente partiremos para os plugins que atuam em cima da lógica do código e que ajudam na produtividade. Não nego que uma tela bonita também não ajuda na produtividade né... porque acho que ajuda sim!

Temas de cores

O Vim já vem com uma série de temas de cores pré-instalada, mas sinceramente, existem temas de terceiros muito mais bonitos. Eu uso um dos temas da coleção awesome-vim-colorschemes. Então vamos lá:

cd $HOME/.vim/pack/git-plugins/start
ou
C:> cd $HOME\vimfiles\pack\git-plugins\start

e clone o seguinte repositório:

git clone https://github.com/rafi/awesome-vim-colorschemes

A lista dos temas que a coleção traz pode ser acessada listando o diretório:

ls awesome-vim-colorschemes/colors/
256_noir.vim
abstract.vim
afterglow.vim
alduin.vim
anderson.vim
angr.vim
apprentice.vim
archery.vim
atom.vim
ayu.vim
carbonized-dark.vim
carbonized-light.vim
challenger_deep.vim
deep-space.vim
deus.vim
dogrun.vim
dracula.vim
flattened_dark.vim
flattened_light.vim
focuspoint.vim
fogbell_light.vim
fogbell_lite.vim
fogbell.vim
github.vim
gotham256.vim
gotham.vim
gruvbox.vim
happy_hacking.vim
hybrid_material.vim
hybrid_reverse.vim
hybrid.vim
iceberg.vim
jellybeans.vim
lightning.vim
lucid.vim
lucius.vim
materialbox.vim
meta5.vim
minimalist.vim
molokai.vim
molokayo.vim
nord.vim
OceanicNextLight.vim
OceanicNext.vim
one-dark.vim
onedark.vim
one.vim
orange-moon.vim
orbital.vim
PaperColor.vim
paramount.vim
parsec.vim
pink-moon.vim
purify.vim
pyte.vim
rakr.vim
rdark-terminal2.vim
scheakur.vim
seoul256-light.vim
seoul256.vim
sierra.vim
snow.vim
solarized8_flat.vim
solarized8_high.vim
solarized8_low.vim
solarized8.vim
spacecamp_lite.vim
spacecamp.vim
space-vim-dark.vim
stellarized.vim
tender.vim
termschool.vim
twilight256.vim
two-firewatch.vim
wombat256mod.vim
yellow-moon.vim


Você pode testar um por um digitando no Vim:

:colo abstract
:colo jellybeans
...
:colo tender


Eu uso a materialbox. Para fixar o tema desejado, adicione a seguinte linha ao seu .vimrc:

colorscheme materialbox

E se você é fã de carteirinha do Visual Studio Code, pode querer baixar a réplica de seu tema dark para o Vim:

git clone https://github.com/tomasiser/vim-code-dark

E testar com:

:colo codedark

Vamos ver como ficou a cara do nosso Vim com o tema materialbox:
Outro patamar não é?

Problema com paleta de cores

Se as cores dos temas não estiverem exibindo corretamente no seu terminal, pode ser necessário setar algumas variáveis de ambiente. Faça isso:

export TERM=xterm-256color
export COLORTERM=truecolor
export COLORFGBG="15;0"

Adicione as 3 linhas acima no seu ~/.bash_profile para fixar a configuração.

Linhas de indentação

Entre na pasta "start":

cd $HOME/.vim/pack/git-plugins/start
ou
C:> cd $HOME\vimfiles\pack\git-plugin\sstart

e clone o seguinte repositório:

git clone https://github.com/Yggdroot/indentLine

E adicione as seguintes linhas ao seu .vimrc:

let g:indentLine_enabled = 1
map <c-k>i :IndentLinesToggle<cr>

Abra o código de exemplo e veja a mágica, temos linhas tracejadas para nos ajudar a identificar a indentação:
Também mapeamos a combinação de teclas: Ctrl+k, i

Tecle Ctrl+k seguido de "i" para ligar e desligar o IndentLines. Deixei ele habilitado por padrão, mude o enabled para 0 caso queira desabilitar.

Página anterior     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

Placa Intel PRO/Wireless 3945ABG no Debian Linux

adb - Como capturar em vídeo a tela de seu Android

O Linux e o Star Office

Mais uma política "suja" de marketing da Microsoft

Sorteio de camisetas promovido pela GeekWorld

Leitura recomendada

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

Utilizando o Buffer de Gravação no Editor Vim

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

Utilização do Vim para iniciantes

GitHub Copilot - Inteligência Artificial no NeoVim

  
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