vim
é um dos editores de arquivos mais populares no 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 no 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 i
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 pesquisar uma string , digite a barra invertida /
seguida pela string a ser pesquisada.
For example:
/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 brown
como mostrado em uma imagem anterior. Para localizar as próximas ocorrências, pressione n
. Após a última ocorrência, ele volta para o primeiro, exibindo a mensagem “search hit BOTTOM, continuando no TOP” .
Para pesquisar uma string com um caractere especial ou, por exemplo, caracteres como um sinal de mais (+) ou um espaço, coloque uma barra antes do caractere:
For example:
/C\+
Para localizar e substituir a primeira ocorrência de string em uma linha , colocamos o cursor nessa linha e usamos o seguinte comando:
For example:
:s/dog/tiger
Como você pode ver na imagem acima, a terceira linha onde o cursor está posicionado, a palavra dog
foi substituída tiger
conforme as instruções do comando.
Para localizar e substituir todas as ocorrências de string em uma linha , use /g
no final.
For example:
:s/cat/dog/g
Para localizar e substituir todas as ocorrências globalmente , usamos em %s
vez de apenas s
:
For example:
:%s/dog/mouse
Se a string consistir em um caractere especial como espaço, ela pode ser precedida por uma barra, da mesma forma que mostrado antes.
🍻 Cheers!