Respostas:
Adicione o sinalizador c (no prompt de comando do vim):
:%s/old/new/gc
fornecerá um aviso sim / não em cada ocorrência de 'antigo'.
A ajuda interna do Vim oferece informações úteis sobre as opções disponíveis após a seleção da substituição com confirmação. Usar:
:h :s
Em seguida, role até a seção sobre opções de confirmação. Captura de tela abaixo:
Por exemplo, para substituir esta e todas as correspondências restantes, use a
.
Mark Biek apontou usando:
%s/old/new/gc
para uma pesquisa global, substitua pela confirmação de cada substituição. Mas também gosto de verificar interativamente que o texto antigo corresponderá corretamente. Primeiro faço uma pesquisa com uma regex e depois reutilizo esse padrão:
/old.pattern.to.match
%s//replacement/gc
O s//
usará o último padrão de pesquisa.
Acho que você está procurando c
, por exemplo s/abc/123/gc
, isso fará com que o VIM confirme as substituições. Consulte: help: substitua para obter mais informações.
Eu costumo usar o comando find / substitute / next / repeat :-)
/old<CR>3snew<ESC>n.n.n.n.n.n.n.
Aquela find "old"
, substitute 3 characters for "new"
, find next
,repeat substitute
, e assim por diante.
É uma dor para substituições maciças, mas permite que você ignore seletivamente algumas ocorrências antigas (apenas pressionando n
novamente para encontrar a próxima em vez de .
repetir uma substituição).
<CR>
?
Se o texto de substituição precisar ser alterado para cada ocorrência correspondente (ou seja, não basta escolher Sim / Não para aplicar uma substituição singular), você poderá usar um plug-in do Vim que criei chamado substituição interativa .
Neovim agora tem um recurso para visualizar a substituição:
Imagem retirada de: https://medium.com/@eric.burel/stop-using-open-source-5cb19baca44d Documentação do recurso: https://neovim.io/doc/user/options.html# 'inccommand'
nvim
recurso embutido, é bom saber! Obrigado por compartilhar!