Deixe-me definir uma macro de teclado: entro C-x (, depois começo M-<e digito M-%para substituir por consulta algumas ocorrências de foo por barra . Das 3 ocorrências encontradas, substituo apenas as 2 últimas, depois salvo com C-x C-se termino a macro kbd com C-x ). Bem feito!!
Se agora eu executar o kbd-macro em outro buffer, ele não perguntará se eu quero substituir foo por barra , ele reproduzirá exatamente minhas respostas anteriores não-sim-sim e substituirá a 2ª e a 3ª ocorrências! Não solicitará a quarta ou a quinta ocorrências (esse segundo buffer contém mais foo s) !! Não é o que eu esperava quando defini a macro. Eu queria que ele ligasse query-replace
e deixe-me responder às suas perguntas ...
Além da pergunta: você não acha isso errado? [Eu posso M-x edit-last-kbd-macro
ver o que está registrado e entender a lógica de tudo, mas ainda acho isso errado.]
Pergunta real: O que eu poderia ter usado query-replace
para fazer meu kbd-macro funcionar como esperado?
start-kbd-macro-dwim
.
M-%
- e as reproduz exatamente. Eu nunca vi e não esperaria uma macro com partes interativas. Você provavelmente está melhor escrevendo uma função elisp interativa normal neste momento.