Como posso reverter uma linha no Notepad ++?

13

É possível inverter uma única linha no Notepad ++?

Exemplo:

Hello world

mudaria para

dlrow olleH

Devo instalar um plugin para essa funcionalidade?

UPDATE : gostaria de manter a área de transferência em seu estado original. Então, uma [cópia] - [transformação externa] - [colar] não é adequada.

Além disso, gostaria de permanecer em um ambiente de área de trabalho desconectado, portanto, qualquer solução de serviço on-line não é adequada.

    
por Ron Klein 20.07.2010 / 09:38

7 respostas

5

Você pode fazer uma pesquisa iterada e substituir para inverter a sequência, depois de marcar o início da sequência com um caractere especial (eu uso o sinal de porcentagem% no exemplo)

pesquisa: (%)(.*)(.)

substituir:

ativar "expressões regulares" na pesquisa e substituição.

repita a operação até que a string seja invertida.

    
por 05.08.2010 / 14:13
3

UPDATE: Eu adicionei um script "inverta o texto da área de transferência" do Python-3.
Este script Python-3 serve para o texto Unicode; ie. todo o texto ...

# original # Ĥĕłłō ŵōŗłđ in Unicode  
# reversed # edocinU ni đłŗōŵ ōłłĕĤ  

Como nenhuma solução integrada foi apresentada (ainda), mencionarei uma solução alternativa para Unix-tools.

Faça o download dos utilitários mencionados na fonte (abaixo) e coloque-os em uma pasta PATH'd. Coloque o código (abaixo) em um arquivo .cmd e chame como quiser. (deve, é claro, estar em uma pasta PATH).
Crie um atalho do Windows para o .cmd (coloque-o em algum lugar do seu StartMenu e configure-o para ser executado minimizado) ... e assine um atalho para atalho.

Você pode então copiar o texto de sua escolha para a área de transferência e pressionar sua tecla de atalho ... Concluído! .. o texto invertido substitui o texto selecionado.

Se preferir, você pode configurar uma macro NotePad ++ para selecionar e copiar uma linha inteira .. (anote o (s) caractere (s) de nova linha no final do texto.

Além disso, conforme mencionado nas notas de origem. Este workd para conjuntos de caracteres de bytes simples ..

sed.exe pode ser capaz de lidar com Unicode, mas ainda não trabalhei muito nisso ... Se acontecer de você saber como fazer isso, por favor poste a informação, seja aqui ou talvez na minha publicação de uma questão específica sobre este assunto: pode-gnu-sed-para-windows-handle-unicode

Esta é a versão sed.exe :

@echo off
  ::==============================================::
  :: FUNCTION: Reverse the text in the clipboard. ::
  ::    8-bit characters only (ANSI).             ::
  :: It removes all \r and \n characters, because ::
  :: because sed.exe adds a trailing line-feed    ::
  :: Four 'NIX utilities are used.                ::
  ::    2 gclip.exe  (GNU)                        ::
  ::    1 pclip.exe  (GNU)                        ::
  ::    3 gsed.exe   (GNU)                        ::
  ::    4 tr.exe (is 'NIX, but maybe not GNU)     ::
  ::==============================================:: 
  >   "%temp%\%n0.sed" echo /\n/!G
  >>  "%temp%\%n0.sed" echo s/\(.\)\(.*\n\)/^&/
  >>  "%temp%\%n0.sed" echo //D
  >>  "%temp%\%n0.sed" echo s/.//
  pclip.exe | sed.exe -f "%temp%\%n0.sed" | tr.exe -d "\r\n" | gclip.exe  
  del "%temp%\%n0.sed"
goto :eof  

Aqui está a versão Python-3 :

##==============================================##
## FUNCTION: Reverse the text in the clipboard. ##
##           The text is handled as unicode.    ##
## Using Python-3.1.2                           ##
##  with Python-Win32-extensions for Python-3.1 ##
##==============================================##
import win32clipboard as w
w.OpenClipboard() 
## CF_UNICODETEXT == 13
s=w.GetClipboardData(13)
w.SetClipboardData(13,s[::-1]) 
w.CloseClipboard() 
    
por 05.08.2010 / 05:39
2

Se você não precisa fazer isso com frequência, pode copiar a linha para esta ferramenta on-line . faça a reversão.

    
por 29.07.2010 / 21:16
2

Sei que isso usa outra ferramenta, mas você pode reverter o texto no Excel e copiá-lo de volta. Crie uma planilha e adicione essa macro:

Sub ReverseText()
    Cells(Selection.Row, Selection.Column + 1) = StrReverse(Selection.Value)
End Sub

Se você pretende usar esse recurso regularmente, atribua a macro a um botão na barra de ferramentas para facilitar o acesso. Copie algum texto em qualquer célula. Certifique-se de que a célula esteja selecionada e execute a macro. Copie o texto gerado de volta para o Notepad ++.

Surpreendente que este recurso simples não esteja disponível no Notepad ++ ou através de um plugin como TextFX .

    
por 22.07.2017 / 18:00
1

O plugin BinHex versão 2.0 do Notepad ++ tem uma função de reversão de String implementada.

Você pode marcar a string que deve ser invertida e pressione Ctrl + R .

    
por 25.07.2018 / 20:52
0

Uma extensão da idéia de gor se sua string tiver menos de dez caracteres:
Faça uma macro disso.
Realce a área desejada em N ++

pesquisa:

(.?)(.?)(.?)(.?)(.?)(.?)(.?)(.?)(.?)

substituir:


substituir na seleção: verificado

O N ++ suporta apenas dez grupos, então é tudo que você recebe, mas pelo menos faz dez letras de uma só vez.

Off topic, o motor regex do IE é diferente do aceito em relação a esse tipo de regex, então isso pode ser feito no IE sem as iterações.

    
por 05.05.2011 / 11:27
0
  1. Selecione o texto para reverter.
  2. Divida-o em várias linhas usando a janela Substituir com Seleção de entrada e Expressão regular selecionada para Substituir tudo (.) por \ n \ 1
  3. Selecione o texto novamente (por algum motivo, o último caractere é deixado de fora da seleção após a etapa 2).
  4. Use a resposta para Reverter a ordem da linha no Bloco de notas ++ para reverter as linhas.
  5. Recombine as linhas usando a janela Substituir com a seleção Em e Estendido selecionado para Substituir tudo \ n com uma cadeia vazia.
  6. Talvez você precise remover novas linhas externas.
por 23.02.2012 / 14:00