Posso pesquisar e substituir em uma macro do Notepad ++?


18

Estou tentando criar uma macro no Notepad ++ que permita fazer algumas pesquisas e substituições padrão. Consigo que a macro faça tudo (adicione linhas, adicione caracteres), exceto pesquisar e substituir.

Não consigo encontrar os arquivos para editar a macro manualmente.

Alguém já conseguiu criar uma macro no Notepad ++ que executa a Pesquisa e Substituição? Quão?

PS: Não estou interessado em outras ferramentas que possam fazer isso - eu sei o que fazer com perl, vi (m), UltraEdit, sed, awk-me - estava me perguntando se o Notepad ++ poderia fazer isso.

Respostas:


13

Sim, tentei gravar uma nova macro, fiz uma pesquisa e substituí-la e ela salvou a ação com êxito. Quando reproduzi a macro, ela fez a mesma pesquisa e substituiu a ação.

Não sou especialista em macros do Notepad ++, mas acho que você é ... Abri um arquivo aleatório e criei uma macro chamada teste. Ele procurou uma palavra chamada "snip" e a substituiu por "blaa".

A abertura do shortcuts.xmlarquivo após o fechamento do Notepad ++ revela esta nova macro:

<Macro name="test" Ctrl="no" Alt="no" Shift="no" Key="0">
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="snip" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="blaa" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1608" sParam="" />
</Macro>

Isso foi testado e funciona na minha máquina. Posso modificar manualmente esse arquivo e as alterações são refletidas e funcionam no Notepad ++.

Observe, no entanto, que o shortcuts.xmlarquivo (localizado na pasta Appdata) só é carregado e salvo ao abrir / sair do Notepad ++.


Obrigado. Encontrei o arquivo, mas a gravação ainda não funcionou. Editei o arquivo (não com o N ++ fora do curso) e colei o seu snippet. O N ++ reconheceu a macro, mas não substituiu nada com êxito - acho que deve haver alguma dependência não realizada que me impede de gravar / reproduzir.
Konerak

11
Tudo o que tenho é o Notepad ++, sem complementos especiais (Instalado pela Ninite) ... Verifique se você está usando a versão mais recente - mas se não conseguir fazer isso funcionar, algo pode estar errado com sua instalação.
precisa

Eu estava atrás de uma função "localizar e substituir em todos os documentos" e consegui produzi-lo com êxito com o código de exemplo acima, com duas pequenas alterações: o lParam"768" acima se tornou "2" e o lParam"1608" se tornou "1635". Caso contrário, funcionou muito bem! (Notepad ++ 5.9.2)
Mike

Estou usando a v7.6 e consegui gravar uma macro para pesquisar e substituir. Gerou a mesma definição em shortcuts.xml. No entanto, a macro não funcionou até depois que fechei o Notepad ++ e reabri o programa. Procurei shortcuts.xmlsubstituir o que foi gravado com o seu exemplo e descobri que nada de novo havia sido gravado no arquivo. Lembrei-me de sua nota sobre os atalhos serem carregados e salvos apenas quando o programa é aberto e fechado. Então, obrigado @WilliamHilsum por essa dica super útil. Eu poderia ter abandonado o esforço sem ele.
Adam Porad

6

Anteriormente, descobri que isso também não funcionava para mim. Mas então eu atualizei do Notepad ++ 5.6.x para 5.9.8 e agora posso gravar a localização e substituição muito bem. Muito agradável!

Obviamente, a edição manual shortcuts.xmlapós a gravação de uma é inevitável, porque não existe um editor de macro, e você precisa de uma concentração super humana para gravar uma macro enorme na perfeição. (Verifique se todas as instâncias do Notepad ++ estão fechadas antes de editar esse arquivo.)


1

Eu também não encontrei nenhum editor de macro (para manipular texto) no Notepad ++ (embora o Notepad ++ forneça poucas funções embutidas). Mas agora há um plug-in disponível para criar macros no Notepad ++. Esse plug-in é chamado de ' Script Python ' (com boa documentação e exemplos) através do qual você pode escrever qualquer tipo de macros, pois com esse plug-in, você quase tem controle total disponível sobre o editor e o próprio Notepad ++. Se você possui algum conhecimento básico sobre python, pode começar a escrever macros usando este plug-in (a documentação deste plug-in abrange algumas sintaxes básicas de python para iniciantes).

Você pode pesquisar, substituir e executar praticamente qualquer tipo de operação como macro usando este plugin.

Aqui está o link para obter mais informações: http://npppythonscript.sourceforge.net/

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.