Vim - implemente um "substituir tudo" no modo BOSS

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

[ Hits: 7.222 ]

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

Como cortar arquivos de áudio usando o ffmpeg

GIT - Como recuperar um arquivo deletado no teu repositório

Google Authenticator no terminal Linux

Agendando tarefas com Python (schedule)

Auto indentar linhas selecionadas no Vim

Leitura recomendada

Juntar/unir linhas (JOIN) no VIM

Compilando a última versão do Vim no Fedora 33

Vim - como criar arquivo ou diretório pelo NERDTree

Integrar Área de Transferência do Vim com Ambiente Gráfico

Instalando Vim 8.2 completo no Linux Mint 20

  

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