Blog do TaQ

Seleções de blocos com o Vim

Publicado em Developer

Ontem o meu amigo Samir Mamude me chamou a atenção para esse post aqui, onde o autor mostrou alguns dos recursos novos do Microsoft Visual Studio 2010, que agora possibilita recursos para edição em blocos.

Como ele bem comentou lá no post original, nós já temos esses recursos já faz um bom tempo, no bom e velho (jurássico é sacanagem) Vim, e como o autor do post pediu um vídeo para compararmos (ou provarmos que existia mesmo, sei lá), eu fiz esse vídeo aí em cima mostrando como funcionam os recursos similares do Vim para esse tipo de coisa. Vale lembrar, como disse no post original:

  1. Eram 23:36, eu estava com sono e tive que fazer "colinha" do código ali e comi alguma bronha pois ...
  2. ... retirei TODOS os plugins e zerei meu .vimrc, deixando ele PELADO para fazer o vídeo. Algumas coisas como o autocomplete de chaves e parênteses sem funcionar deixam a gente perdido. Eram algumas poucas linhas para habilitar isso no arquivo de configuração, antes que falem alguma coisa.
  3. Eu estava rodando ele direto num terminal, para mostrar que mesmo em um terminalzão texto isso tudo funciona. Quebra um baita galho usando com SSH. No modo gráfico fica mais bonito, mas eu quis mostrar na lasqueira mesmo.
  4. Sem chance de ter som no vídeo, o Corinthians estava jogando e o mundo estava se acabando em fogos aqui. :-)
  5. Não, eu não programo em C#, só quis fazer o exemplo ficar igual. ;-)

Eu inseri algumas anotações durante o vídeo, mas dando uma resumida aqui:

  1. O segredo da coisa está na combinação de teclas CTRL+V. Acionando as danadas podemos fazer seleções em blocos.
  2. Depois de selecionar os readonly usando w para ir até no final da palavra e as setas (ou melhor, como anotei lá, usar 4j para descer direto), eu apaguei o bloco com x.
  3. Para fazer as inserções dos m_, eu selecionei o bloco e apertei I (insert), digitando o texto que queria inserir no restante do bloco (no caso, m_) e logo após apertei ESC, o que repetiu tudo o que eu fiz para o restante do bloco.
  4. Para trocar todos os public para readonly, eu selecionei o block e apertei c (change), digitando o texto que queria seguido por ESC.
  5. Para os comentários, selecionei o bloco no final da linha, apertei $A (importante notar o $ que indica o final da linha, e A de append), digitei o texto que queria (// Comment) e apertei ESC.
  6. Para inserir o código novo, digitei a primeira e a segunda linha, sendo que a segunda eu desconfio que saiu fora da indentação pois eu havia deixado a configuração zerada para o teste. Logo após repliquei a segunda linha com y (yank, para copiar) e 4p, o que colou ela 4 vezes. Em seguida marquei o bloco logo acima e copiei e colei com y e p no lugar determinado, retirando que não era necessário com dw (apagar palavra), movendo com w (palavra pra frente) e b (palavra pra trás).

Pronto! O resultado foi similar, lembrando que foi feito em um terminal texto, sem necessidade de modo gráfico, o que várias vezes é uma mão-na-roda e quebra um galhão (ainda mais acessando via SSH) e que temos esse recurso faz um bom tempo já. No modo gráfico fica até mais bonito, e com alguns plugins habilitados a edição fica rápida e matadora!

As combinações de teclas podem assustar em um primeiro momento, mas é como até foi mencionado, se você se acostuma com o editor, é uma coisa meio de reflexo e muito rápida. O Vim assusta em um primeiro contato, mas depois que gosta não fica sem. Vejam a saga do Aurélio com o Vim para ver o tamanho do abacaxi quando se começa a usar o negócio. :-)


Tags:


Comentários

comments powered by Disqus

Twitter