Come posso invertire una riga in Notepad ++?


12

È possibile invertire una sola riga in Notepad ++?

Esempio:

Hello world

Passerebbe a

dlrow olleH

Devo installare un plugin per tale funzionalità?

AGGIORNAMENTO : Vorrei mantenere gli Appunti nel loro stato originale. Quindi una [copia] - [trasformazione esterna] - [incolla] non è adatta.

Inoltre, mi piacerebbe rimanere in un ambiente desktop disconnesso, quindi qualsiasi soluzione di servizio online non è adatta.

Risposte:


6

È possibile eseguire una ricerca ripetuta e sostituire per invertire la stringa, dopo aver contrassegnato l'inizio della stringa con un carattere speciale (nell'esempio utilizzo il segno di percentuale%)

ricerca: (%)(.*)(.)

sostituire: \3\1\2

abilita "espressioni regolari" nella ricerca e sostituisci.

ripetere l'operazione fino a quando la stringa non viene invertita.


2
Questo potrebbe essere estenuante per una lunga serie, ma è una soluzione piuttosto piacevole poiché è ancora "dentro" l'ambiente NPP.
Ron Klein,

3

AGGIORNAMENTO: Ho aggiunto uno script Python-3 "inverti il ​​testo degli appunti".
Questo script Python-3 si rivolge al testo Unicode; vale a dire. tutto il testo ...

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

Poiché non è stata presentata (ancora) una soluzione integrata, citerò una soluzione alternativa agli strumenti Unix.

Scarica le utility menzionate nel sorgente (sotto) e inseriscile in una cartella PATH'd.
Inserisci il codice (sotto) in un file .cmd e chiamalo come preferisci. (ovviamente, deve trovarsi in una cartella PATH'd).
Crea un collegamento di Windows in .cmd (mettilo da qualche parte nel tuo StartMenu e impostalo per l'esecuzione in modalità ridotta) ... e assegna un tasto di scelta rapida per farlo.

È quindi possibile semplicemente copiare il testo desiderato negli Appunti e premere il tasto di scelta rapida ... Fatto! .. il testo invertito sostituisce il testo selezionato.

Se preferisci, puoi impostare una macro NotePad ++ per selezionare e copiare un'intera riga .. (prendi nota dei caratteri di nuova riga alla fine del testo.

Inoltre, come indicato nelle note di origine. Questo workd per set di caratteri a byte singolo ..

sed.exepotrebbe essere in grado di gestire Unicode, ma non l'ho ancora del tutto risolto ... Se ti capita di sapere come fare, ti preghiamo di pubblicare le informazioni, qui o forse nel mio post di una domanda specifica su questo problema : can-gnu-sed-for-windows-handle-unicode

Questa è la sed.exeversione:

@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\)/^&\2\1/
  >>  "%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  

Ecco la Python-3versione:

##==============================================##
## 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() 

Funziona alla grande con Python 2.5 anche su Windows. Dolce!
Dennis,

Questo cambia lo stato degli appunti. Vorrei evitare questo. Tuttavia, se funziona, potrei accettarlo.
Ron Klein,

2

Se non è necessario farlo spesso, è possibile copiare la riga in questo strumento online per eseguire l'inversione.


Bella idea, ma il punto è continuare a lavorare all'interno dell'ambiente Notepad ++ e non andare a nessuna risorsa esterna (un browser).
Ron Klein,

Purtroppo lo strumento non è in linea
Antonio,

2

Mi rendo conto che questo utilizza un altro strumento, ma puoi invertire il testo in Excel e copiarlo nuovamente. Crea un foglio di calcolo e aggiungi questa macro:

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

Se si intende utilizzare questa funzione regolarmente, assegnare la macro a un pulsante sulla barra degli strumenti per un facile accesso. Copia del testo in qualsiasi cella. Assicurarsi che la cella sia selezionata ed eseguire la macro. Copia il testo generato su Notepad ++.

Sorprendente che questa semplice funzionalità non sia disponibile in Notepad ++ o tramite un plug-in simile TextFX.


1

Il plug-in BinHex versione 2.0 di Notepad ++ ha implementata una funzione String reverse.

È possibile contrassegnare la stringa che deve essere invertita e premere Ctrl+ R.


0

Un'estensione dell'idea di gor se la tua stringa ha meno di dieci caratteri:
creane una macro.
Evidenzia l'area desiderata in N ++

ricerca:

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

sostituire:

\9\8\7\6\5\4\3\2\1

sostituisci nella selezione: selezionato

N ++ supporta solo dieci gruppi, quindi è tutto ciò che ottieni, ma almeno fa dieci lettere alla volta.

Fuori tema, il motore regex di IE è diverso da quello accettato per questo tipo di regex, quindi questo potrebbe essere fattibile in IE senza le iterazioni.


0
  1. Seleziona il testo da invertire.
  2. Suddividilo in più righe usando la finestra Sostituisci con In selezione ed Espressione regolare selezionata per Sostituisci tutto (.) Con \ n \ 1
  3. Seleziona di nuovo il testo (per qualche motivo, l'ultimo carattere viene lasciato fuori dalla selezione dopo il passaggio 2).
  4. Utilizzare la risposta all'ordine inverso delle righe in Notepad ++ per invertire le righe.
  5. Ricombina le linee usando la finestra Sostituisci con In selezionata ed Estesa selezionata per Sostituisci tutto \ n con una stringa vuota.
  6. Potrebbe essere necessario rimuovere newline estranee.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.