Como Encontrar e Substituir Texto no Vim no Linux

vim é um dos editores de arquivos mais populares do Linux. Parte da popularidade se deve ao modo de linha de comando do vim, que permite aos usuários, especialmente desenvolvedores de software e usuários avançados, otimizar o tempo para operações de modificação de arquivos.

Neste artigo, veremos como localizar e substituir texto em vim modo de linha de comando.

Primeiro, vamos abrir um arquivo de texto no vim:

vim test.txt

O Vim opera em vários modos. Os dois modos mais importantes são o modo de comando mencionado acima e o segundo é o modo Inserir, usado para modificar o conteúdo do arquivo.

Por padrão, quando um arquivo é aberto, o vim opera no modo de comando. Você pode pressionar eu para ir para o modo Inserir.

No modo Comando, você pode começar a digitar comandos vim diretamente; eles aparecem na parte inferior do terminal. Esta parte inferior atua como um prompt de comando integrado no vim.

Para procurar uma string, digite barra invertida / seguido pela string a ser pesquisada.

Por exemplo: / dog

Como visto acima, ele leva o cursor para a próxima ocorrência da string a partir da posição onde o cursor está posicionado. O cursor foi colocado na string marrom como mostrado em uma imagem anterior. Para encontrar as próximas ocorrências, pressione n. Após a última ocorrência, ele volta para o primeiro, dando uma mensagem “Search hit BOTTOM, continuando no TOP”.

Para procurar uma string com um caractere especialou, por exemplo, caracteres como um sinal de mais (+) ou um espaço, precedem o caractere com uma barra:

Por exemplo: / C \ +

Para localizar e substituir a primeira ocorrência de string em uma linha, colocamos o cursor nessa linha e usamos o seguinte comando:

Por exemplo:: s / dog / tiger

Como você pode ver na imagem acima, a terceira linha onde o cursor está posicionado, a palavra cão foi substituído por tigre conforme instruído no comando.

Para localizar e substituir todas as ocorrências de string em uma linha, usar / g no fim.

Por exemplo:: s / cat / dog / g

Para encontrar e substituir todas as ocorrências globalmente, nós usamos % s em vez de apenas s:

Por exemplo::% s / dog / mouse

Se a string consistir em um caractere especial como o espaço, ela pode ser precedida por uma barra, da mesma forma que mostrado antes.

? Felicidades!