Vim - implemente um "substituir tudo" no modo BOSS

Publicado por Fábio Berbert de Paula em 30/07/2020

[ Hits: 7.531 ]

Blog: https://fabio.automatizando.dev

 


Vim - implemente um "substituir tudo" no modo BOSS



Nesta dica você vai ganhar mais um motivo para se convencer de que o Vim é o melhor editor da galáxia... vamos criar uma função que executará um "substituir tudo" de modo personalizado, fácil demais.

Para você entender a lógica, para localizar e substituir todas as ocorrências de uma palavra no Vim você digita o seguinte comando:

:%s/palavra/nova-palavra/g

Mas quero facilitar sua vida... quero fazer com que ao teclar "Ctrl + r" o Vim substitua todas as ocorrências da palavra sob o cursor por alguma coisa de sua escolha.

Abra o seu .vimrc e adicione as seguintes linhas:

function ReplaceAll()
  let a = expand("<cword>")
  let b = input('Substituir "' . a . '" por: ')
  if !empty(b)
    execute '%s/' . a . '/' . b . '/g'
    execute '%s/' . b . '//ng'
  endif
endfunction

nnoremap <c-r> :call ReplaceAll()<cr>

Agora basta abrir um arquivo qualquer, posicionar o cursor sobre a palavra desejada e teclar: Ctrl + r

O Vim irá solicitar que digite a substituição e voilà! Todas as ocorrências substituídas, com o número total exibido na barra de status do editor.

No vídeo abaixo explico o código acima e implemento algumas funcionalidades adicionais, como substituir somente na linha corrente, no documento inteiro ou informando a palavra ou expressão desejada:
:wq!

Outras dicas deste autor

Traceroute - como escolher qual gateway ou interface de rede será usado

SQL: Combinando INSERT + SELECT para duplicação de registros

Expressão Regular para Endereço IP

Como converter vídeos para AVI sem perder qualidade

Como burlar anúncios sem usar nenhuma extensão

Leitura recomendada

Salvar automaticamente no Vim

Vim - substituindo somente no bloco selecionado

Juntar/unir linhas (JOIN) no VIM

Plugin auto-pairs no Vim

Compilando o Vim 8.2 com suporte a clipboard

  

Comentários
[1] Comentário enviado por maurixnovatrento em 30/07/2020 - 08:03h


Muito legal. Vou implementar.

___________________________________
Conhecimento não se Leva para o Túmulo.

[2] Comentário enviado por maurixnovatrento em 30/07/2020 - 21:16h


Tenho que ver meu vim que não vai quase nada. Vou ter que compilar?

___________________________________
Conhecimento não se Leva para o Túmulo.

[3] Comentário enviado por fabio em 30/07/2020 - 21:25h


Tenho que ver meu vim que não vai quase nada. Vou ter que compilar?


Não, jogou no .vimrc já está funcionando. Os recursos dessa dica não requerem versões 8.1+ do Vim.

[4] Comentário enviado por maurixnovatrento em 02/08/2020 - 18:00h


Segui a dica do vídeo e ficou bem completo. Tudo funcional.

___________________________________
Conhecimento não se Leva para o Túmulo.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts