Vim encontre e substitua

Vim encontre e substitua
VI/VIM é um dos editores de texto lendários por aí que ainda encontram seu lugar no arsenal de usuários avançados e profissionais. Vim é especialmente popular entre os programadores. Cada distro Linux por aí inclui vim por padrão. Se você estiver executando o sistema não-Linux, ainda poderá aproveitar este editor de texto de qualidade de qualquer sistema. Obtenha vim.

Por que esse software antigo ainda é relevante? Porque é um atalho leve e de teclado para quase qualquer função, pesquisas de expressão interna e um ecossistema de plug-in robusto, estável e saudável. Sem mencionar outros recursos do editor de texto moderno, como o Beautiful Sintaxe Destaque. Você encontrará vim principalmente popular entre os programadores porque o vim requer foco no teclado pesado. Essa é uma boa prática para programadores.

Como o título do artigo sugere, o objetivo deste guia é oferecer uma melhor compreensão da pesquisa e substituir as funcionalidades de Vim. Vim não tem nada a ter medo. Na verdade, é uma das superpotências que você sempre terá ao seu lado.

Criação de arquivo de demonstração

No começo, precisamos de um texto de demonstração. Para aprender vim, a maneira mais segura é criar um arquivo de texto descartável e fazer o que quiser com ele. Dessa forma, mesmo que algo dê errado, nada importante é perdido.

Estou usando Manjaro Linux como meu sistema Linux. Aprenda a instalar Manjaro Linux. É uma distro baseada em arco usando Pacman como gerente de pacotes padrão. Eu gerei um arquivo de texto contendo todos os pacotes instalados no meu sistema.

Pacman -qqe >> Packagelist.TXT
Pacote de gatos.TXT

Agora, inicie o arquivo de texto em Vim!

vim packagelist.TXT

Vim Search

Para pesquisa, o VIM usa a seguinte estrutura.

?

Por exemplo, vamos pesquisar por "python".

?Pitão

Por padrão, a pesquisa sentará em um resultado fixo. Para ir para o resultado da pesquisa seguinte/anterior, use as seguintes chaves.

Nota: Não se esqueça de acertar Enter antes de usar as seguintes chaves. Caso contrário, o termo de pesquisa mudará!

n - Encontre a próxima partida
N - Encontre a partida anterior

Esta é apenas a maneira básica de pesquisar. Vamos experimentar um método um pouco mais poderoso.

/\\>

Aqui, \ é para o fim da string.

Assim como o exemplo anterior, use n ou n (dependente do caso) para navegar nos resultados da pesquisa.

Pesquisar também suporta o uso de curingas. Por exemplo, existem muitos pacotes com “Python-“ extensão.

Para procurar todos eles, podemos usar "Python*". Aqui, o asterisco está dizendo que qualquer coisa depois do prefixo "python". Para qualquer pesquisa, o asterisco pode estar em qualquer lugar do termo de pesquisa. Onde quer que esteja, ele diz a Vim para preencher a lacuna com todos os dados possíveis de todo o arquivo de texto.

/\

Quando você está pesquisando, Vim sempre coloca o cursor no personagem inicial das partidas. Esta é a ação padrão. Não se preocupe; Vim permite alterar a posição padrão do pouso do cursor.

/python/e

Aqui, o último "E" diz para chegar ao cursor no final da frase correspondente. Usando o exemplo a seguir, você também pode dizer para pousar o cursor abaixo ou acima do resultado da pesquisa.

//+2
//-3

Também é possível compensar o cursor desde o início/final das correspondências de pesquisa. Por exemplo, o comando a seguir pousará o cursor com 3 caracteres ao lado do início.

//s+3
//b+3

Aqui, o "S" indica o começo, "+3" indica 3 caracteres desde o início. "B" significa "Begin". Também funciona semelhante a "s". Na captura de tela, o VIM traduzirá automaticamente "B" para "S".

Se você estiver interessado em compensar do final das correspondências de pesquisa, use "e".

/

Aqui está outra maneira incrível de realizar uma pesquisa em um arquivo de texto.

:%s/// GN

Uma explicação detalhada do comando está na próxima seção do artigo.

Vim substitua

Encontre e substituir é outra função comum e obrigatória para qualquer editor de texto de qualidade. Vim, sendo uma lenda, oferece uma maneira robusta de encontrar e substituir o texto desejado de uma maneira simples. O comando para a função é simples, mas permite fazer obras realmente complexas.

: s///

Vamos quebrar cada parte.

  • intervalo - defina o alcance da execução da função "Localizar e substituir". Existem 2 valores diferentes.
    • % - execute em todo o arquivo
    • , - Execute a ação em um certo conjunto de linhas.
  • Search_string - a string que você precisa substituir.
  • substituir_string - a nova string que substituirá a antiga.
  • Modificador - determine o comportamento de substituição. Existem alguns valores diferentes.
    • G - opção "global". Execute a substituição em cada ocorrência de uma linha.
    • GC - Peça confirmação antes de fazer cada substituição.
    • GN - ignore a função Substitua e destaque os achados.

Por exemplo, vamos substituir todo o "python" por "python3".

:%s/python/python3/g

Simples, certo? Agora, vamos verificar o seguinte.

:%s/python/python3/gc

Há um punhado de ações que você pode escolher. Enquanto alguns deles são familiares, outros não são. Vamos ver o que isso significa.

  • y - deixe executar a mudança.
  • n - não permitir a realização da mudança.
  • A - Substitua a todos.
  • Q - Saia da tarefa.
  • L - apenas substitua esta ocorrência. Então, pare.
  • ^E (ctrl + e) ​​- role para cima uma tela
  • ^Y (ctrl + y) - role para baixo em uma tela

Agora, vamos experimentar a parte do alcance. No exemplo anterior, já usamos o intervalo "%". Agora, é hora de limitar nossas pesquisas em várias linhas.

: 200.250 s/python/python3/g

A pesquisa começará na linha 200 e termina na linha 250. Entre os limites, toda a entrada "Python" será alterada para "Python3".

Esta função não se limita apenas a um termo de pesquisa. Você pode incluir vários termos de pesquisa!

:%s/\ |\ |
//g

Vamos tentar mudar todas as entradas "python" e "py" em "python3".

:%s/python \ | py/python3/g

Sensibilidade ao caso

Todos os truques descritos anteriormente no guia são altamente sensíveis ao caso. Você precisa realmente ter certeza de que, sempre que estiver trabalhando, está digitando os personagens no caso correto. Por exemplo, "Python", "Python", "Python" etc. Todos são entradas diferentes.

Se você não se lembra do caso, basta dizer a Vim para se tornar insensível ao caso!

/\ c
:%s/\ c//g

Essa insensibilidade também pode ser ativada diretamente no arquivo VIMRC.

defina ignorecase

Aqui está outra opção interessante.

Defina o SmartCase

A “ignorecase” forçará o Vim a ignorar a sensibilidade do caso. No entanto, se houver alguma letra maiúscula em sua pesquisa, o "SmartCase" permitirá que o VIM se torne mais sensível ao caso.

NOTA: Para "SmartCase" funcionar, você precisa de "ignoreCase" primeiro.

Pensamentos finais

Há muitas coisas que você pode executar com vim. É como o melhor editor de texto que você precisará. Tudo que você precisa é apenas paciência e alguma prática.

Aproveitar!