8 dicas e truques do Vim que farão de você um usuário profissional

29 de março de 2017

Breve : neste artigo, vou mostrar alguns dos meus truques Vim favoritos com exemplos práticos. Se você não usa o Vim, essas dicas podem não dar motivos para usar o Vim*, mas se você já usa, você definitivamente se tornará um usuário melhor do Vim.

Mesmo se recentemente eu comecei a usar Atom cada vez mais, dificilmente posso passar um dia sem usar Vim. Não porque sou forçado. Mas porque me sinto confortável.

Sim, confortável . Uma palavra muito estranha quando se fala em Vi ou qualquer um de seus clones, não é? E eu concordo, certamente não é o editor de texto mais intuitivo .

Mas com um pouco de prática e treinando um pouco sua memória, você pode realizar tarefas de edição aparentemente complexas com apenas alguns toques no teclado. Algo que eu realmente nunca encontrei com nenhum outro editores de texto de linha de comando para Linux.

Mas, em vez de escrever ainda-uma-outra-introdução-vi, escolhi hoje deixá-lo tocar o verdadeiro poder por trás do Vi (m) apresentando-lhe alguns truques que eu realmente uso - e sinto falta na maioria, senão em todos os outros editores. Não vou lhe dar uma explicação completa de todos esses truques, mas recomendo fortemente que você tente e experimente com eles até que você tenha alguma noção de como eles funcionam.

Se você gostou do Vim e deseja dominá-lo completamente, você também pode se inscrever no curso online do Vim fornecido pela Linux Training Academy.

8 truques do Vim para tirar mais proveito dele

// <! [CDATA [janela.__ Mirage2 = {petok: c749d84e044135c1732862b453f876feee35976d-1612198213-1800}; //]]>! [Melhores dicas e truques do Vim para usuários profissionais]() Melhores dicas e truques do Vim para usuários profissionais

Deixe-me repetir: eu o encorajo fortemente a experimentar esses exemplos por si mesmo. Infelizmente, o WordPress não faz necessariamente um bom trabalho para preservar o conteúdo exato dos meus exemplos e comandos - especialmente em relação a linhas vazias ou citações. Assim, para sua comodidade, você pode baixar as amostras utilizadas aqui no link abaixo:

Baixe os exemplos do Vim para a prática

Cada exemplo vem com o texto original (.orig) e um script Bash (.sh) invocando o Vim com o comando ilustrado neste artigo.

1. Alterando letras maiúsculas no Vim

Eu sou o único usando esse recurso? Ou é porque estou condenado a trabalhar com pessoas que acreditam que ESCREVER EM MAIÚSCULAS É LEGAL?

De qualquer forma, ao programar, ao adicionar um aviso de copyright, ou mesmo após um copy-paste, não é incomum ter que mudar a capitalização do texto. Nesse aspecto, o Vim é muito mais evoluído do que o Vi original. E eu abençoo todos os dias Bram Moolenaar por seu grande trabalho:

Texto original copyright (c) por O uso das obras é permitido desde que este instrumento seja mantido com as obras, para que qualquer entidade que use as obras seja notificada sobre este instrumento. Aviso: as obras estão sem garantia.

Comandos ~ Alternar entre maiúsculas e minúsculas: $ norm gUU Converter a última linha em maiúsculas {não em Vi} Texto modificado Copyright (c) por O uso das obras é permitido desde que instrumento é retido com as obras, de modo que qualquer entidade que utilize as obras seja notificada deste instrumento. ISENÇÃO DE RESPONSABILIDADE: AS OBRAS ESTÃO SEM GARANTIA.

![]()

2. Dicas de busca e substituição do Vim

Este eu uso todos os dias. Por que isso ainda não está presente em todos os editores de texto? Claro, a maioria dos editores tem algum tipo de recurso de substituição de pesquisa. Mas quantos realmente têm o poder de regex e padrões de substituição? Claro, isso é mais complexo de dominar do que as substituições básicas de strings . Mas eu simplesmente não poderia viver sem esse recurso. Nesse ponto, às vezes me vejo copiando/colando de alguns editores de GUI em um terminal executando sed e vice-versa. Mas Vi tem isso incorporado há 40 anos ou mais ...

Texto original Um menino tem a chance de pintar uma cerca de preto todos os dias? Isso colocou a coisa sob uma nova luz. Ben Rogers parou de mordiscar sua maçã. Tom varreu o pincel delicadamente para frente e para trás - deu um passo para trás para notar o efeito - acrescentou um toque aqui e ali - criticou o efeito novamente - Ben observando cada movimento e ficando cada vez mais interessado, cada vez mais absorvido. Comandos: s/black/white/Substitua a primeira ocorrência da string 'black' por 'white': s/Ben \ (Rogers ) \ @!/Ben Rogers/g Substitua todas as ocorrências da string ' Ben 'por' Ben Rogers 'exceto quando' Rogers 'já estava presente: s /.*/

\ r & \ r <\/p>/Passe a linha entre

e

: -1s/-/\ & mdash;/g Substitua todas as ocorrências da string '-' por '& mdash;' na linha anterior Texto modificado

Um menino tem a chance de pintar uma cerca de branco todos os dias? Isso colocou a coisa sob uma nova luz. Ben Rogers parou de mordiscar sua maçã. Tom varreu o pincel delicadamente para frente e para trás & mdash; recuou para observar o efeito & mdash; acrescentou um toque aqui e ali & mdash; criticou o efeito novamente & mdash; Ben Rogers observando cada movimento e ficando cada vez mais interessado, cada vez mais absorvido.

! []() Essas cercas de piquete me lembram do ViM…

3. Movendo coisas em nenhum momento

Sim, copiar e colar e arrastar e soltar são ótimas ferramentas. Mas às vezes é muito chato rolar por um documento inteiro para descobrir onde colar meu texto e, em seguida, rolar na direção oposta para trazer o cursor de volta ao seu local inicial.

Texto original Prós:

  • Rápido
  • Poderoso
  • Confiável
  • Não amigável ao usuário:
  • Portátil
  • Addictive Commands/Power/Vá para a primeira linha que contém a string 'Power' ddp Troque a linha atual pela próxima:/user-friendly/m $ Mova a próxima linha contendo a string 'user-friendly' ao final do arquivo g; Traga o cursor de volta para a posição anterior:/Cons/+ 1m-2 Mova duas linhas para cima na linha após 'Contras' Texto modificado Prós:
  • Rápido
  • Confiável
  • Poderoso
  • PortableCons:
  • Viciante
  • Não amigável! []()

4. Aplicação de comandos em um intervalo de endereços

Os editores de GUI podem permitir que você aplique alguns comandos em todo o arquivo ou apenas na seleção atual. Às vezes, temos mais opções, como antes ou depois do cursor. Mas Vi (m) permite uma descrição muito mais expressiva do intervalo em que um determinado comando deve ser aplicado:

Texto original

Nome da caneta Nome real
Mark Twain Samuel Clemens
Lewis Carroll Charles Dodgson
Richard Bachman Stephen King

Muitos escritores optaram por escrever com um pseudônimo.

Comandos:/

/,/<\/table>/g/^ $/d Exclua as linhas vazias entre as linhas contendo
e
:/^ $ /;/^ $/- 1m1 Mova o texto entre as próximas duas linhas vazias após a linha 1 (observe o uso de um ponto e vírgula aqui): 2, $ - 1> Aumentar o recuo do texto entre a linha 2 e a penúltima linha Texto modificado

Muitos escritores optaram por escrever com um pseudônimo.

Nome da caneta Nome real
Mark Twain Samuel Clemens
Lewis Carroll Charles Dodgson
Richard Bachman Stephen King

! []()

5. Exemplos de comandos de tubulação do Vim

Este é absolutamente um meta-truque no espírito direto da filosofia Unix. Vi permite que você processe parte de seu buffer por meio de um comando externo . Isso é ótimo quando você precisa de coisas que não podem ser feitas diretamente no Vi - ou para coisas que não são facilmente executáveis no Vi. Meu caso de uso favorito para esse recurso é classificar dados - mas ele tem poder virtualmente ilimitado:

Texto original tee> (echo $ (wc -l) dados mais recentes) << EOT Agosto de 2016 2,11% Setembro de 2016 2,23% Outubro de 2016 2,18% Novembro de 2016 2,31% Dezembro de 2016 2,21% Janeiro de 2017 2,27% Março de 2016 1,78% Abril de 2016 1,65% Maio de 2016 1,79% Junho de 2016 2,02% Julho de 2016 2,33% EOTLinux Market Share on Desktop fonte: https://www.netmarketshare.com Comandos: 2,/^ EOT/-1! sort -k2n -k1M Classifica os dados por ano e mês: $ r! data + Dados obtidos a \% c Adicione a saída do comando date no final do arquivo: 1,/^ EOT /! bash Execute o script incorporado e substitua-o por seu resultado Texto modificado março de 2016 1.78 % Abril de 2016 1,65% Maio de 2016 1,79% Junho de 2016 2,02% Julho de 2016 2,33% Agosto de 2016 2,11% Setembro de 2016 2,23% Outubro de 2016 2,18% Novembro de 2016 2,31% Dezembro de 2016 2,21% Janeiro de 2017 2,27% 11 dataLinux Market Share mais recente no Desktop fonte: https://www.netmarketshare.com Dados obtidos em Qui, 09 de fevereiro de 2017 11:07:34 PM CET! []()

6. Digitando menos

Ao escrever documentação formal, sempre há alguns termos incomumente longos e complicados que você deve repetir. Pode ser uma marca ou nome de produto. Algum local. Um aviso de direitos autorais. E assim por diante. Obviamente, cada instância dessas palavras grandes deve ser escrita corretamente e usando exatamente as mesmas letras maiúsculas e pontuação. O recurso de abreviatura do Vim é obrigatório.

Comandos: ab apple Apple Computer, Inc. Introduzir uma nova abreviatura i Switch to insert mode apple foi fundada em 1977. O logotipo da maçã é uma maçã ^ V. Texto digitado (^ V significa control-V ) Resultado A Apple Computer, Inc. foi fundada em 1977. O logotipo da Apple Computer, Inc. é uma maçã.![]()

7. Obtendo ajuda no Vim

Ok, existe o Intenet. Mas as pessoas que ainda usam o man como eu apreciarão a ajuda inline . Você pode obter ajuda por tópico. Ou por comando. Sempre útil quando você não se lembra da sintaxe ou das opções exatas dos comandos Vim - ou se não tiver certeza de que o comando de que precisa é um comando normal ou um comando ex: .

Experimente isto!: ajuda ajuda: ajuda m: ajuda: m

8. Scripting no Vim

Ao usar o Vi (m), você está basicamente usando um front end visual para outro editor subjacente chamado ex . Talvez você tenha notado quantos comandos nos exemplos acima começam com dois pontos (:)? Isso porque esses são ex comandos. E esta é mais uma vantagem do Vi (m) em relação a tantos editores de texto: não apenas você pode usá-lo interativamente - mas também pode fazer script dele.

Por que alguém iria querer fazer isso? Falando por mim, acho que é uma ótima maneira de automatizar algum processamento de texto. Ao lado, você pode ver um exemplo típico direto do meu disco rígido.

Provavelmente há alguns comandos misteriosos naquele ex script, mas posso dizer que isso removerá qualquer cabeçalho (eventualmente presente) de um script e o substituirá por outro lido no arquivo NEW.HEADER - adicionando um # antes de cada linha adicionada . Não há dúvida de que eu poderia ter feito isso usando outras ferramentas além da ex. Na verdade, esse foi até mesmo o assunto de um de nosso Desafio Bash anterior. Mas ex é definitivamente uma opção.

Que misterioso… ex some.script << EOT 0pu_ 1,/^ [^ #]/- 1d 0r NOVO.HEADER 1, .s/^/#/ wq EOT Como eu disse inicialmente, este artigo não foi absolutamente um tutorial, nem uma introdução ao Vi (m). Apenas algumas dicas do Vim para mostrar por que alguém ainda pode gostar desse editor, apesar de todos os outros editores de código modernos para Linux disponíveis hoje. Em certo sentido, compartilhei com você alguns dos meus feitiços favoritos. Mas na grande tradição da magia, eu não revelei como exatamente eles funcionam.

Então, queridos aprendizes, não hesite em usar a seção de comentários abaixo para compartilhar seus próprios encantamentos ou contra-feitiços - ou se você ousar, para explicar esses truques!

Confira também a versão original desse post em inglês
Esse post foi originalmente escrito por Sylvain Leroux e publicado no site itsfoss.com. Tradução sujeita a revisão.

8 Vim Tips And Tricks That Will Make You A Pro User

Propaganda
Blog Comments powered by Disqus.
Propaganda