Substituindo todos os caracteres especiais / acentuados por caracteres regulares equivalentes no Notepad ++

6

Estou tentando descobrir uma maneira de pesquisar e substituir automaticamente todas as letras / caracteres especiais / acentuados (como  / Ô ) com as letras / caracteres regulares equivalentes ( A / O ) no Notepad ++.

Tentei usar o ToolFx, mas não funcionou.

    
por amiregelz 05.10.2012 / 11:05

3 respostas

4

A sugestão acima é excelente, mas neste exato momento não funcionaria devido a um problema entre o Notepad ++ e o "Notepad ++ Python Script". Desde alguns meses, o gerenciador de plugins do Notepad ++ baixa uma versão antiga do Python Script que não funciona com o editor. Para corrigir isso:

  1. Saia do Notepad ++
  2. Faça o download da versão compatível do
  3. Execute o instalador baixado clicando duas vezes nele. No Windows mais recente, ele pedirá para mudar para privilégios de administrador.
  4. Certifique-se de escolher a unidade de instalação correta no início do processo de instalação. Ele não detectará o disco de instalação do Notepad ++ corretamente. Eu tive que reinstalá-lo novamente porque, por padrão, ele é instalado em C: \ mesmo que o Notepad ++ esteja em outro disco.
  5. Siga as instruções do assistente.
  6. Depois de concluir o processo de instalação, (re) inicie o Notepad ++. Agora vá e abra o menu Plugin. Você deve ver um novo item "Script Python" dentro dele. Se aparecer, você terá instalado corretamente a versão correta. Você também pode verificar novamente abrindo o Plug in manager, indo para a aba "Installed" e procurando por uma entrada mostrando a versão 1.0.8 (neste momento) do plug-in do Python estando presente.
  7. Você está quase pronto. Vá para os plugins = > Script de Python = > Mostrar menu do console. Um painel deve aparecer na parte inferior do Notepad ++. DEVE mostrar um aviso como o seguinte:

    Python 2.7.6-notepad++ r2 (default, Apr 21 2014, 19:26:54) [MSC v.1600 32 bit (Intel)]
    Initialisation took 156ms
    Ready.
    

Os vários números de versão são atuais a partir de hoje, é claro que eles devem mudar com o passar do tempo. Se o painel inferior mostrar uma exceção indicando que ocorreu uma exceção ou (e) ela ficar em branco, você instalou uma versão incorreta do plug-in do Python.

Agora, vamos aplicar o script da maneira correta:

  1. Abra duas novas guias / arquivos em branco.
  2. Cole seu texto acentuado no primeiro.
  3. Clique com o botão direito do mouse na guia do segundo e selecione o menu "Mover para outra exibição". As janelas do Notepad ++ serão divididas.
  4. Abra o console do Script Python, conforme explicado acima (Plugins = > Script Python = > Mostrar menu do console).
  5. Ir para a linha do console, na parte inferior do painel Python, tem um "> > >" marcação no início.
  6. Digite: from Npp import * e, em seguida, pressione Enter (a partir de agora, suponha que você sempre pressione Enter no final dos comandos).
  7. Digite: import unicodedata no mesmo texto de entrada.
  8. Clique (selecione) na guia que contém o texto acentuado ( isso é importante! ).
  9. Digite os seguintes comandos, uma linha por vez, no prompt do Python e pressione Enter após cada linha:

    eText = editor.getText()
    uText = unicode(eText, "UTF-8")
    nText = unicodedata.normalize( "NFKD", uText )
    

Se você quiser ter certeza de que o Python "realmente recebeu o texto": depois que você digitou eText = editor.getText() (+ tecla Enter), digite: print eText + Enter. Você deve ver seu texto acentuado no painel de saída do console Python.

  1. Clique (selecione) na guia vazia ( isso é importante! ).
  2. Digite: editor.addText( nText.encode('ASCII', 'ignore') ) na caixa de texto usual do comando do console do Python.
  3. A guia vazia deve ser preenchida com o texto convertido sem sotaque. Certifique-se de seguir esta lista de tarefas com cuidado, porque é fácil perder uma etapa (clicando especificamente nas guias) e, em seguida, você terá que recomeçar do zero.
por 14.11.2014 / 12:21
1

Não fique restrito ao que você como disponível. Temos python disponível a partir do N ++, e isso significa que uma rápida pesquisa SO [python] [unicode] remove accents revela esta questão altamente votada , lidando exatamente com isso!

Podemos testar facilmente em N ++ para ver como funciona:

  1. Abra dois novos buffers / guias / arquivos ou o que você quiser chamá-los.
  2. Copie e cole esses caracteres UTF-8 estendidos em latim no primeiro.
  3. Clique com o botão direito na guia do segundo e "Mover para outra vista".
  4. Abra o console do Python Script e tente os seguintes comandos ::

    de Npp import *
    importar unicodedata
    < < Selecione a aba na visualização 1. > >
    eText = editor.getText () < < Selecione a aba na visualização 2. > >
    uText = unicode (eText, "UTF-8")
    nText = unicodedata.normalize ("NFKD", uText)
    editor.addText (nText.encode ('ASCII', 'ignore'))

Olhando em volta, parece que existem muitas maneiras de remover os acentos, a questão é qual funciona melhor para você. E agora que você pode ver como é fácil "experimentar" essas soluções em seu texto, vá em frente e tente. Uma vez que você goste de um método específico, adicione-o (usando o menu do plugin) como um script e ele estará lá sempre que você precisar.

Divirta-se!

BTW - se você não tiver o script Python instalado, poderá instalá-lo usando os plug-ins - > Gerenciador de plugins.

    
por 08.10.2012 / 20:29
1

Script

Aqui está uma variação do script do primeiro e segundo respostas, que podem ser usadas para atribuir uma tecla de atalho para converter o texto selecionado:

class convert_char01:
    import unicodedata
    eText = editor.getSelText()
    uText = unicode(eText, encoding='utf-8', errors='ignore')
    nText = unicodedata.normalize( "NFKD", uText )
    editor.replaceSel(nText)

Atalho

Veja como criar uma tecla de atalho para executar o script:

  • Instale o Script Python para NPP.
  • Crie um novo script:
    • Ir para Plugins > Script Python > Novo script .
    • Ligue para "convert_char.py".
  • Adicione este script ao menu:
    • Ir para Plugins > Script Python > Configuração , clique no seu Script de Usuário e clique no botão Adicionar para adicionar a Itens de menu .
    • Sugira também a configuração Inicialização para ATSTARTUP para acelerar as coisas.
  • Crie uma nova tecla de atalho:
    • Provavelmente, é necessário reiniciar o NPP primeiro para que o novo item de menu apareça no Mapeador de Atalhos .
    • Crie um novo acelerador de atalhos em Configurações > Mapeador de Atalhos ... .

Agora, quando você tiver uma sequência realçada, poderá converter rapidamente os caracteres dessa tela para executar o script sem usar o console.

Referências

por 02.01.2016 / 01:15