Macro do Notepad ++ para alterar uma certa parte de uma string

1

Eu quero definir uma macro Notepad ++ que pegue qualquer string que contenha "foo", e crie suas novas versões apenas alterando o foo para "bar1", "bar2" etc.

então, se meu arquivo contiver

abc_foo_def

quando eu executo a macro, quero pegar

abc_foo_def
abc_bar1_def
abc_bar2_def
abc_bar3_def

Trial 1

Eu tentei uma macro com Ctrl + D (linha duplicada) ir para a linha inferior e iniciar de "foo", pressione delete 3 vezes, em seguida, escreva "bar1", repita até bar3. Note que, mesmo que isso funcionasse, não funcionaria para vários "foo" s na linha de entrada. No entanto, não funciona como esperado.

Trial 2

Outra macro foi tentada com a duplicação, selecionando a segunda linha, Search & Substitua "foo" por "bar", com a caixa de seleção In Selection marcada. Mas acho que não se aplica a macros.

Então, estou procurando um modo confiável. Obrigado por qualquer ajuda!

P.S. 1

Eu também estou bem com uma solução sem o Notepad ++. (Excel, Word, qualquer que seja)

P.S. 2

Minha string de entrada pode conter mais de um "foo". Cada um deve ser substituído por "barx"

    
por jeff 10.01.2015 / 21:25

1 resposta

0

Não sei porque seu teste 2 falhou. Talvez você tenha usado o mouse ao gravar a macro? Tenho certeza que você obterá melhores resultados se você usar apenas o teclado ao gravar uma macro.

Acabei de gravar a macro a seguir no Notepad ++ 6.6.9. Ele funciona para um número variável de strings "foo" na linha de origem.

  • Definir o cursor no início da linha de origem

Registro:

  • Ctrl + D
  • Ctrl + D
  • Ctrl + D
  • Início
  • Shift + Fim
  • Ctrl + H (para localizar e substituir)
  • Encontre "foo" e substitua por "bar1"; selecione "Na seleção"; clique em Substituir tudo
  • Feche a caixa de diálogo
  • Início
  • Shift + Fim
  • Ctrl + H (para localizar e substituir)
  • Encontre "foo" e substitua por "bar2"; selecione "Na seleção"; clique em Substituir tudo
  • Feche a caixa de diálogo
  • Início
  • Shift + Fim
  • Ctrl + H (para localizar e substituir)
  • Encontre "foo" e substitua por "bar3"; selecione "Na seleção"; clique em Substituir tudo
  • Feche a caixa de diálogo

Encerrar gravação

Aqui está o XML de %AppData%\Notepad++\shortcuts.xml :

<Macro name="SuperUser_Q_Macro" Ctrl="no" Alt="no" Shift="no" Key="0">
  <Action type="0" message="2469" wParam="0" lParam="0" sParam="" /> 
  <Action type="0" message="2469" wParam="0" lParam="0" sParam="" /> 
  <Action type="0" message="2469" wParam="0" lParam="0" sParam="" /> 
  <Action type="0" message="2453" wParam="0" lParam="0" sParam="" /> 
  <Action type="0" message="2300" wParam="0" lParam="0" sParam="" /> 
  <Action type="0" message="2315" wParam="0" lParam="0" sParam="" /> 
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" /> 
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="foo" /> 
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" /> 
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="bar1" /> 
  <Action type="3" message="1702" wParam="0" lParam="898" sParam="" /> 
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" /> 
  <Action type="0" message="2453" wParam="0" lParam="0" sParam="" /> 
  <Action type="0" message="2300" wParam="0" lParam="0" sParam="" /> 
  <Action type="0" message="2315" wParam="0" lParam="0" sParam="" /> 
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" /> 
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="foo" /> 
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" /> 
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="bar2" /> 
  <Action type="3" message="1702" wParam="0" lParam="898" sParam="" /> 
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" /> 
  <Action type="0" message="2453" wParam="0" lParam="0" sParam="" /> 
  <Action type="0" message="2300" wParam="0" lParam="0" sParam="" /> 
  <Action type="0" message="2315" wParam="0" lParam="0" sParam="" /> 
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" /> 
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="foo" /> 
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" /> 
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="bar3" /> 
  <Action type="3" message="1702" wParam="0" lParam="898" sParam="" /> 
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" /> 
</Macro>
    
por 14.01.2015 / 16:45