Seleções de blocos com o Vim
Publicado em Developer
block editor selection vim
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:
- Eram 23:36, eu estava com sono e tive que fazer "colinha" do código ali e comi alguma bronha pois ...
- ... 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.
- 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.
- Sem chance de ter som no vídeo, o Corinthians estava jogando e o mundo estava se acabando em fogos aqui. :-)
- 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:
- O segredo da coisa está na combinação de teclas CTRL+V. Acionando as danadas podemos fazer seleções em blocos.
- 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.
- 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.
- Para trocar todos os public para readonly, eu selecionei o block e apertei c (change), digitando o texto que queria seguido por ESC.
- 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.
- 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. :-)
Comentários
Comentários fechados.
Artigos anteriores
- Pull requests em modo raiz - sex, 22 de dezembro de 2023, 09:57:09 -0300
- Qual a idade do seu repositório? - ter, 27 de dezembro de 2022, 12:50:35 -0300
- Utilizando ctags em projetos Rails mais recentes - qui, 24 de junho de 2021, 08:23:43 -0300
- Fazendo o seu projeto brotar - seg, 15 de julho de 2019, 08:57:05 -0300
- Learn Functional Programming with Elixir - sex, 02 de março de 2018, 18:47:13 -0300
- Ambiente mínimo - Driver Driven Development - qua, 23 de agosto de 2017, 15:15:03 -0300
- Ambiente mínimo - repositórios de código - dom, 16 de abril de 2017, 13:02:14 -0300
- Ambiente mínimo - terminal e navegador - dom, 02 de abril de 2017, 21:43:29 -0300
- Utilizando muitas gems no seu projeto? - sáb, 29 de outubro de 2016, 11:57:55 -0200
- Desenvolvedores e inteligência artificial - seg, 11 de julho de 2016, 09:09:38 -0300
Taq, depois que agente se vicia no vim a vida fica mais bela, e fácil não é mesmo?
Opa, não segui o link do Aurélio. Mas eu sabia que a piada era velha (também, piada nova para dois programas jurássicos é difícil :-) )
EU não me preocupo. Tem gente usando Lisp, Fortran, escutando Beatles e Elvis Presley e andando de Fusca. Bem, eu tenho três SOs instalados no mesmo computador. O Windows, o Linux e o Emacs. Só me falta um editor de texto (outra piada velha).
Nem vou dizer por qual programa estou respondendo, só posso dizer que tem até aba. Um screenshot para quem acertar.
Guaracy, eu fui mais rápido na piadinha, ela está na URL do Aurélio hahauhauha! :-)
Muito bom o vídeo com o Emacs. O duro é chamar de jurássico também, estou começando a me sentir um homem das cavernas. Esses dias até chamaram a gente para tocar num festival aqui perto chamado "Heavy Metal Asilo", sacanagem pô. :-)
Ué, entrou um ';' que não tem na url.
s/view&;id=57/view&id=57/
Ah, já sei. Foi por causa da piadinha. :-)
Eu não sei se a combinação de teclas pode assustar ou se são os dois modos: o que bipa e o que não bipa. (tá, a piada é velha, mas hoje é sexta).
Como é sexta, resolvi fazer um flashezinho também. Só que usei o wink (que também roda no Linux mas não é aberto, apenas free) e de raiva eu coloquei o arquivo com 'C'.
http://photoshosting.com/?page=view&id=57ca02246&name=blocksel.swf&q=high&width=806&height=586
eu comentei mais ou menos assim no post daquele cara
"Uau, o meu avô que era escovador de bits, usava no vim os futuros recursos avançados do visual studio 2010, que segundo a microsoft é novidade
é uma pena que ele não esteja vivo para ver isso"
claro que isso é uma histórinha fictícia ^^
Isso ai Taquinho, acabando com o argumento do nosso "amiguinho", bom como ele mesmo disse "isso eh que eh edição de texto matadora" e no nosso caso "de gratis !!!" :-D
Pena que esse cara ai, não posta todos os comentários do blog dele, e sim, só os que lhe convém... mas deixa pra lá.
O bom eh que a resposta veio a tempo e não via dar pra falarem que o "povo do Linux" que copiou o recurso, bla, bla, bla, pq o VS usa o drag-n-drop, bla bla bla, etc como eh de costume ...
Mas eh bem divertido ver como a MS vende uma "novidade" e tem gente que paga horrores por isso...
Muito bom o post, mas acho que ai temos o maior segredo de uso do vim: pensar, em outros editores temos a mani a de sairdigitando como um louco sem pensar no que vamos fazer em seguida, tudo no vim pode ser mais rápido, mas precisa pensar no conceito de "bloco de alterações", uma vez que isso entra na cabeça vai embora.