Pular para o conteúdo

Substituição avançada de texto no Vi/Vim

Dica publicada em Linux / Comandos
Phillipe Smith SmithuX
Hits: 5.232 Categoria: Linux Subcategoria: Comandos
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Substituição avançada de texto no Vi/Vim

Atendendo uma dúvida do colega xerxeslins no fórum do VOL, aqui vai uma pequena dica de como substituir textos no VI/Vim de forma avançada sem a necessidade de utilizar plugins.

Obs.: é necessário ter um mínimo conhecimento sobre expressões regulares.

Suponhamos que queira adicionar tags HTML há várias linhas de um texto, você poderá realizar a tarefa da seguinte forma:

Primeiramente, pressione a tecla ( v ) e selecione o texto desejado.

Depois, pressione a tecla dois pontos ( : ) e então insira o seguinte código:

s/\( *\)\(.*\)/\t\1
  • \2<\/li>/

    Ficará conforme imagem abaixo:
    O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
    Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
    O resultado deverá ficar conforme abaixo:
    Bem, é isso! Espero que a dica seja útil!

  • O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
    Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

    Lakka - Uma distro para games retrô

    Limpando a memória cache no Linux

    Posicionando o AWN (Avant Window Navigator)

    Video Converter: Convertendo vídeos no Linux facilmente

    Passagem de parâmetros para funções shell script

    Como fazer o curl ignorar certificado SSL inválido

    Timeout para terminais

    Gravar imagens ISO no DVD, via linha de comando

    Título "retrátil" da janela no i3

    imsniff - Convertendo os logs em TXT para HTML

    #1 Comentário enviado por emilioeiji em 13/01/2016 - 10:46h
    Pra ficar melhor só faltou explicar melhor os parâmetros.
    #2 Comentário enviado por SmithuX em 13/01/2016 - 13:03h

    [1] Comentário enviado por emilioeiji em 13/01/2016 - 10:46h

    Pra ficar melhor só faltou explicar melhor os parâmetros.

    Vixi... é verdade meu camarada.
    Como não dá mais pra editar a dica, então vou fazer uma breve explicação aqui no comentário:

    1) Quando pressionada a tecla ( V ) no Vi/Vim, vai para o modo visual onde é possível selecionar partes do texto com as teclas de movimentação, além de outras coisas;
    2) A expressão regular utilizada na dica significa o seguinte:
    s/.../.../ = Significa substituir uma ou mais expressões por outras, sendo os primeiros ( ... ) o que deve ser substituído, em seguida, pelo quê deve ser substituído

    \( *\)\(.*\) = Significa que vamos, primeiramente, capturar/agrupar () todos os espaços encontrados e, logo depois, faremos a mesma coisa, mas para qualquer
    outro conteúdo encontrado. Cada \(....\) representa um grupo onde tudo que foi capturado pode ser recuperado depois utilizando a denominação \numero_do_grupo (\1, \2,\ 3 ...) .

    \t\1<li>\2<\/li> = Aqui é atribuído uma tabulação ( \t ), adicionado os espaços que capturamos na expressão anterior ( \1 ), e então, adicionamos as tags html desejadas, e no centro delas inserido tudo que foi capturado no segundo grupo da expressão anterior ( \2 ).

    Contribuir com comentário

    Entre na sua conta para comentar.