ABAP on Vim
VIM ROCKS — Antelio I. Abe
E aiii gente bonita, tudo bem com vocês?
Hoje vou falar um pouco sobre um experimento que tenho feito nos últimos meses com esse treco chamado VIM e esse treco chamado ABAP.
Se vocês não moram debaixo de uma pedra, sabe que a SAP liberou faz um tempinho algo chamado ADT, ou ABAP on Eclipse, teve até post sobre isso aqui no blog por um escritor gatérrimo:
Uma das grandes vantagens do Eclipse é o fato dele ser extensível por plugins, algo que sempre subutilizei (se conhecer plugins legais, por favor me fale). Porém num dia de inspiração eu me perguntei:
Existe plugin de VIM?
A resposta é sim, e é diversão garantida para toda a família!
Aviso: Este post é sobre como utilizar com ABAP, não é um tutorial sobre Vim propriamente dito, para isso existem diversos materiais na internet, indicarei alguns que utilizei no fim do post.
O que é VIM?
Vim(Vi IMproved) é um clone do editor de texto Vi, um programa criado para editar textos em Unix, sendo que este é mais focado em edição de códigos e é feito para ser altamente configurável. Por ter que suportar o uso via terminal, seus comandos são, em geral, voltados para uso via texto, desde a navegação até a edição/gravação.
Uma busca rápida no Google sobre “Most popular text editor” vai lhe retornar alguns concorrentes, mas normalmente você encontrará VIM na lista e sempre um dos mais indicados.
Qual a vantagem?
Se você costuma utilizar atalhos de teclado, sabe que toda vez que tem que utilizar seu mouse, você perde um pouquiiiinho de produtividade. A idéia neste editor é sempre manter a mão no teclado, para editar, para se mover no código, tudo via comandos.
Já utilizamos alguns atalhos no nosso dia a dia, Ctrl F3, Ctrl F2, F3, etc etc, então não preciso argumentar muito para dizer que eles agilizam o seu desenvolvimento. A questão é que Vim vai além:
Os comandos do vim acabam sendo “simples” depois de um tempo. Vim é um editor modal, então existe um modo em que você insere o texto diretamente enquanto digita e um modo de navegação. No modo de navegação, chamado de modo normal, os comandos normalmente são <ação><movimento>, depois que você aprende as ações básicas e começa a usar os movimentos, consegue deduzir o que uma ação+movimento faz.
Por exemplo, d<movimento> deleta uma palavra na direção do movimento que você mandou, w navega para o início da próxima palavra, então dw deleta até o início da próxima palavra, então se y é copiar, yw copia até o início da próxima palavra. Combinando isso com macros e os outros atalhos, transforma Vim no editor de texto muito poderoso.
Abaixo você pode ver um pouco alguém programando usando este lindo editor de texto.
Ecomofaz?
Atualmente a única solução para programar fora do ambiente do seu querido SAP Gui é através do Eclipse+ADT, e dentro desse universo existem duas soluções para edição usando Vim: Vrapper e Eclim. Ambos têm objetivos diferentes, mas apenas um deles funciona com ABAP.
- Vrapper transforma o Eclipse num editor Vim.
- Eclim transforma o Eclipse num servidor e você consome ele no seu Vim.
Como ainda temos a necessidade de utilização do SAP Gui(Edição de telas, dependendo do teu servidor, não tem criação de data elements no ADT, etc), a melhor solução acaba sendo o Vrapper. De qualquer maneira, o Eclim não entende a hierarquia de projetos ABAP e nem tem suporte :P.
Para instalar, tem duas maneiras, uma é buscar no Eclipse Market place pelo plugin Vrapper e instalar, simples assim.
A outra maneira é ir em HELP>Install New Software. Na tela seguinte coloque as informações:
Abaixo da tela, vai aparecer várias coisas para instalar:
Na imagem acima, marquei dois plugins que utilizo, e também pra funcionar você precisar instalar o Vrapper.
Get Adriano Campanhola’s stories in your inbox
Join Medium for free to get updates from this writer.
Ao instalar, vai ganhar um botãozinho na tua barra do Eclipse que ativa e desativa:
E pronto! já pode sair editando teu programa com Vim! :)
Truquezinhos/Conflitos
Como o próprio Vim, o Vrapper tem um arquivo .vimrc onde você pode colocar todas as suas configurações, para usuários de Linux e Mac, existe um arquivo .vrapperrc e para usuários de windows, _vrapperrc, você encontra este arquivo na pasta principal do usuário.
Neste arquivo você pode configurar seus atalhos e opções de editor, assim como também pode adicionar macros.
Algumas configurações que recomendo de início:
O Vrapper nada mais é do que uma camada que captura comandos que o eclipse deixa de capturar, então caso tenha algum atalho direto no eclipse, ele sempre irá utilizar este atalho primeiro e caso realmente queira utilizar alguma funcionalidade nativa do Vim que está em conflito, ou você remapeia através do vrapperrc ou remove o atalho do Eclipse.
Um pequeno bug que eu me deparei foi que as sugestões do eclipse não funcionam completamente com este plugin, para isso deve habilitar o contentassistmode(no arquivo acima), porém o quickfix do eclipse não respeita a navegação padrão do Vim(Ctrl+N/P para a navegar entre as ocorrências). Porém isso funciona normalmente para o auto-complete(Ctrl+space)
Uma funcionalidade muito louca do Vrapper é a capacidade de mapear comandos do eclipse a atalhos do Vim, por exemplo, tenho as seguinte configurações no meu vrapperrc:
Posso então, digitar :a para ativar um programa ou quando o cursor estiver sobre uma variável, digitar gd para navegar para a definição(igual o duplo clique do abap).
Um tutorial de como encontrar os comandos acima pode ser visto aqui.
It's not easy
Caso decida entrar nessa brincadeira e nunca mexeu com Vim, gostaria de deixar um aviso de que a curva de aprendizado é devagar, não fique com medo de desligar o Vrapper para finalmente conseguir liberar aquela request. No começo não será tão produtivo quanto anteriormente e várias vezes vai ser frustrante.
A princípio, vários atalhos não serão intuitivos, como por exemplo, as setas terem sido trocadas por h(esquerda)j(baixo)k(cima)l(direita),o botão copiar é no y, etc etc mas se você largar o preconceito, vai acabar gostando!
Recomendo anotar dúvidas, eu quando fui estudando, todo dia decidia que iria me forçar a utilizar um comando novo: “Hoje vou utilizar :s e suas variações”, caso não saiba fazer algo no Vim ou achou algo que sente falta, anote e procure posteriormente.
Outra dica é que os comandos básicos são os mais importantes, quanto mais você praticar eles, mais rapidamente vão virar muscle memory e mais rapidamente irá programar.
Material para estudo:
Movimentos básicos do vim:
Acho que o tutorial abaixo segura muito na mão mas…
Mas o melhor que usei até agora é o vimtutor, precisa ter Vim instalado na máquina, ai basta digitar :vimtutor e correr pro abraço
E é isso ai povo, caso você utilize eclipse, recomendo gastar um tempo com Vim. Se não utiliza eclipse e já brincou com Vim em outras linguagens, que tal utilizar essa oportunidade para começar ;)?
Não deixe de conferir as referências abaixo, e se curtiu o post não deixe de participar comentando, compartilhando ou simplesmente segurando esse botão de aplausos para mostrar que é esse tipo de conteúdo que você deseja ter por aqui. Muito obrigado e até mais!







