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!