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

Por: Fábio Berbert de Paula em 28/07/2020 | Blog: https://youtube.com/c/cotidianohackeado


Explorador de arquivos NERDTREE



Entre na pasta "start":

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/preservim/nerdtree

Adicione as seguintes linhas ao seu .vimrc:

map <C-n> :NERDTreeToggle<cr>
set encoding=utf8

Abra o código de exemplo e veja a mágica, ao teclar Ctrl+n alternamos a exibição do explorador de arquivos NERDTREE:
Para alternar entre o explorador e o editor principal você pode usar o clique do mouse (lembram do set mouse=a ?) ou usar a combinação de teclas:
  • Ctrl + w + w
  • Ctrl + w + seta direcional

Ainda precisamos gourmetizar o explorador com ícones bonitinhos que indicam o tipo de cada arquivo na árvore, isso será possível com o plugin vim-devicons.

devicons - Ícones bonitos para o NERDTREE

Entre na pasta "start":

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/ryanoasis/vim-devicons

Essa configuração é um pouco mais trabalhosa. O plugin devicons traz suporte a uma coleção de fontes enorme, por isso ela não é distribuída por padrão via repositório, você precisa escolher as fontes desejadas e baixar manualmente. Acesse o link abaixo e escolha uma fonte de sua preferência, mas ela DEVE pertencer a família MONO (obrigatório):
Para o guia vou escolher a SpaceMono Regular. O processo de instalação de fonte no ambiente gráfico do Linux é o seguinte:

mkdir ~/.fonts
cd ~/.fonts

Baixar a fonte desejada (neste caso são 4 arquivos):

wget https://github.com/ryanoasis/nerd-fonts/raw/master/patched-fonts/SpaceMono/Regular/complete/Space%20Mono%20Nerd%20Font%20Complete%20Mono.ttf

Atualizar o cache de fontes:

fc-cache

Verificar a instalação da fonte:

fc-list | grep -i Space
/home/vim/.fonts/Space Mono Nerd Font Complete Mono.ttf: SpaceMono Nerd Font Mono:style=Regular

NOTA: vou ficar devendo as instruções de como instalar fontes no Windows ou macOS, mas tenho certeza que como desenvolvedor ou profissional de computação você sabe como fazer isso né?! :)

Por fim adicionar a seguinte linha ao seu .vimrc:

set guifont=SpaceMono Nerd Font Mono:h12

Abra o código de exemplo e veja a mágica, explorador de arquivos NERDTREE gourmetizado:
NOTA: parece que cada fonte da coleção Nerd Fonts traz um pack de cores e ícones diferente. Confesso que escolhi a SpaceMono aleatoriamente para escrever o guia, mas não curti esse tema rosa aí não. No meu desktop estou usando a DroidSans Mono e o visual é diferente.

VOCÊ FAZ: leve o foco do cursor à janela do explorador de arquivos e tecle "?" para acessar o menu de ajuda. Leia e se familiarize com o plugin, sua produtividade agradece!

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

EAuthenticator - Clone do Google Authenticator para Linux

Minha caixa de ferramentas no GNU/Linux

Criando um contador de downloads com PHP e MySQL

MP3 no Linux

RedBug: Lista dos autores de artigos sorteados do mês

Leitura recomendada

Utilização do Vim para iniciantes

Como tornar o Linux mais comercial em pequenas e médias empresas

UFW e GuFW, firewall simples ao alcance de todos

Configurando suporte Firebird no LAMP (xampp) em Lubuntu

Proteção contra vírus usando Samba + ClamAV + Samba-vscan no Fedora Core 3

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

Muito bom! Estava esperando esse artigo!

[2] Comentário enviado por mauricio123 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 Leo CCB 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 mauricio123 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 mauricio123 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 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.

[9] Comentário enviado por ruankl 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 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.

[11] Comentário enviado por mauricio123 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 ruankl 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 mauricio123 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 mauricio123 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 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.

[16] Comentário enviado por mauricio123 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 mauricio123 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 mauricio123 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 mauricio123 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 mauricio123 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 RetroGamerCX 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


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts