Pular para o conteúdo

Vim - implemente um "substituir tudo" no modo BOSS

Dica publicada em Linux / Vim
Fábio Berbert de Paula fabio
Hits: 8.051 Categoria: Linux Subcategoria: Vim
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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>
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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!

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Restaurando abas no Google Chrome

Mapeando teclas de modo visual no VIM

Como burlar anúncios sem usar nenhuma extensão

MongoDB - adicionar um campo a todos os documentos de uma coleção

Auto indentar linhas selecionadas no Vim

Convertendo arquivos em PDF no Vim

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

Como forçar o tipo de arquivo no Vim

Navegação fácil no Vim - encontrar próximo e anterior

netrw - o explorador de arquivos nativo do Vim

#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

Entre na sua conta para comentar.