Vim busca e substitui

Vim Search Replace



O Vim é um editor de texto avançado e popular que vem pré-instalado na maioria das distribuições Linux. É um editor de texto baseado em linha de comando, usado principalmente em sistemas operacionais não baseados em GUI. É altamente configurável e vem com muitos recursos. Um ponto significativo em relação ao Vim é que ele é altamente otimizado para repetição.

Neste artigo, explicaremos um de seus recursos mais úteis que é pesquisar e substituir. Com um punhado de configurações, você pode pesquisar o que quiser na velocidade incrível e com granularidade mais fina.







Método # 1 Encontre e substitua uma ocorrência de cada vez (usando o comando barra e ponto)

A maneira mais simples de pesquisar e substituir uma palavra no Vim é usando o comando barra e ponto. A barra (/) pode ser usada para pesquisar uma palavra, enquanto o ponto (.) Pode ser usado para substituir essa palavra.



Siga os passos simples abaixo para pesquisar e substituir qualquer palavra no editor Vim:



  • Abra o arquivo no Vim
  • Pressione a tecla barra (/) junto com o termo de pesquisa como / search_term e pressione Enter. Ele irá destacar a palavra selecionada.
  • Em seguida, pressione a tecla cgn para substituir a palavra destacada e digite o replace_term
  • Volte ao modo normal. Em seguida, pressione n para ir para a próxima ocorrência do termo de pesquisa.
  • Em seguida, pressione o ponto (.) Se desejar substituir a próxima ocorrência pelo mesmo replace_term, caso contrário, pressione novamente a tecla n para mover para a próxima ocorrência.

É o método mais rápido e melhor para pesquisa básica e substitui funções, pois envolve apenas alguns toques no teclado e menos interrupções em seu trabalho atual. No entanto, a busca por uma palavra que ocorre muitas vezes se tornará uma tarefa repetitiva e demorada.





Com o Vim, existe outra maneira melhor de evitar essa tarefa repetitiva que é usar o comando substitute.

Método # 2 Encontre e Substitua usando o comando Substituir

O comando substitute pode ser usado para realizar pesquisas básicas e avançadas e substituir funções com um único comando. A sintaxe deste comando é:



$: s/<termo de pesquisa> /<substituir_term> /opção

Observe que você deve inserir este comando no modo normal.

Onde

  • S: significa substituto
  • search_term: a palavra que você deseja pesquisar e substituir
  • substituir_term: a palavra com a qual você deseja substituí-lo
  • Opção: c (para confirmação), g (substituir todas as ocorrências em uma linha), i (para ignorar o caso)

Pesquisar e substituir

Para realizar a pesquisa básica e substituir usando o comando substitute, use a seguinte sintaxe:

:%s/<termo de pesquisa> /<substituir_term> /g

Este comando substituirá todas as instâncias de search_term pelo replace_term.

Por exemplo, este é nosso texto de exemplo:

Ubuntu é um dos sistemas operacionais Linux mais usados. Ubuntu inclui milhares de programas úteis. Com a linha de comando do Ubuntu, você pode realizar quase qualquer tipo de tarefa.

Para substituir cada ocorrência do Ubuntu por Debian no texto a seguir, o seguinte comando seria usado:

:%s/Ubuntu/Debian/g

Pesquisar e substituir em uma única linha

Para pesquisar e substituir a ocorrência de uma palavra apenas em uma única linha em vez de no arquivo inteiro, use a seguinte sintaxe:

: s/<termo de pesquisa> /substituir_term/g

Por exemplo, para substituir a ocorrência de Ubuntu por Debian no texto de exemplo acima, o seguinte comando sem o símbolo% seria usado:

: s/Ubuntu/Debian/g

Pesquisar e substituir com confirmação

Se você quiser que uma confirmação seja solicitada antes de substituir o termo de pesquisa, use c no final do comando de pesquisa da seguinte maneira:

: s/<termo de pesquisa> /<substituir_term> /gc

O comando acima pedirá confirmação antes de cada substituição (digite y para sim enquanto n para não).

Pesquisa e substituição que não diferencia maiúsculas de minúsculas

Quando você pesquisa e substitui no Vim, por padrão, é sensível a maiúsculas e minúsculas. Você pode realizar uma pesquisa que não diferencia maiúsculas de minúsculas adicionando i no final do comando da seguinte maneira:

: s/<termo de pesquisa> /<substituir_term> /dar

Por exemplo, para pesquisar o termo Ubuntu independentemente de seu caso (UBUNTU, Ubuntu, ubuntu, uBuntu), o seguinte comando seria usado:

: s/ubuntu/debian/dar

Pesquise e substitua a palavra inteira

Por padrão, o comando substitute procura por qualquer correspondência, seja parcial ou total. Para corresponder ao search_term exato e substituí-lo pelo replace_term, inclua o search _term dentro de.

Por exemplo, em alguns documentos, você deseja pesquisar e substituir a palavra exata você por mim. Nesse caso, o seguinte comando seria usado:

: s/<tu> /eu/

Ele encontrará a palavra você e a substituirá por mim. No entanto, ele não substituirá palavras como as suas.

Pesquisar e substituir palavras entre linhas particulares

Para pesquisar uma palavra entre as linhas específicas em vez de apenas uma linha ou o arquivo inteiro, a seguinte sintaxe pode ser usada:

:<linha de largada>,<fim da linha>s/<termo de pesquisa> /<substituir_term> /g

Por exemplo, para pesquisar e substituir a ocorrência de Ubuntu por Debian de linhas que variam de 3 a 8 em algum arquivo, o comando seria:

:1, 10s/ubuntu/debian/g

Para pesquisar e substituir a ocorrência de uma palavra da linha atual para o próximo número x de linhas, a seguinte sintaxe seria usada:

: s/termo de pesquisa/substituir_term/g x

Da mesma forma, para pesquisar e substituir a ocorrência de uma palavra da linha atual até a última linha: a seguinte sintaxe seria usada:

:.,$ s/termo de pesquisa/substituir_term/g

CONCLUSÃO

Neste artigo, aprendemos as duas formas de linha de comando de pesquisar e substituir qualquer palavra em um editor Vim. O primeiro comando que usava barra e ponto é o método mais simples e fácil, mas acaba sendo repetitivo quando você procura e substitui uma palavra que ocorre muitas vezes. O outro comando que é o comando de substituição uma vez pode parecer difícil e complexo, mas depois de começar a praticá-lo, você o achará extremamente útil em vários cenários.