Wie kann ich eine Zeile in Notepad ++ umkehren?

12

Ist es möglich, eine einzelne Zeile in Notepad ++ umzukehren?

Beispiel:

Hello world

Würde sich ändern zu

dlrow olleH

Sollte ich ein Plugin für solche Funktionen installieren?

UPDATE : Ich möchte die Zwischenablage im Originalzustand halten. Ein [copy] - [external transform] - [paste] ist also nicht geeignet.

Außerdem möchte ich in einer nicht verbundenen Desktop-Umgebung bleiben, sodass keine Onlinedienstlösung geeignet ist.

Ron Klein
quelle

Antworten:

6

Sie können eine iterierte Suche durchführen und ersetzen, um die Zeichenfolge umzukehren, nachdem Sie den Anfang der Zeichenfolge mit einem Sonderzeichen markiert haben (im Beispiel verwende ich das Prozentzeichen%).

Suche: (%)(.*)(.)

ersetzen: \3\1\2

Aktivieren Sie "reguläre Ausdrücke" beim Suchen und Ersetzen.

Wiederholen Sie den Vorgang, bis die Zeichenfolge umgekehrt ist.

gor
quelle
2
Das mag für eine lange Schlange anstrengend sein, aber das ist eine nette Lösung, da es sich immer noch in der Umgebung des KKW befindet.
Ron Klein
3

UPDATE: Ich habe ein Python-3-Skript "Reverse the Clipboard Text" hinzugefügt.
Dieses Python-3-Skript unterstützt Unicode-Text. dh Alle Texte ...

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

Da (noch) keine integrierte Lösung vorgestellt wurde, erwähne ich eine Umgehungslösung für Unix-Tools.

Laden Sie die in der Quelle (unten) genannten Dienstprogramme herunter und legen Sie sie in einem PATH-Ordner ab.
Fügen Sie den Code (unten) in eine .cmd-Datei ein und nennen Sie ihn wie Sie möchten. (es muss sich natürlich in einem PATH-Ordner befinden).
Erstellen Sie eine Windows-Verknüpfung zur .cmd (platzieren Sie sie irgendwo in Ihrem Startmenü und stellen Sie sie so ein, dass sie minimiert ausgeführt wird) ... und weisen Sie ihr einen Shortcut-Hotkey zu.

Sie können dann einfach den gewünschten Text in die Zwischenablage kopieren und Ihren Hotkey drücken ... Fertig! .. Der umgekehrte Text ersetzt den ausgewählten Text.

Wenn Sie möchten, können Sie ein NotePad ++ - Makro einrichten, um eine ganze Zeile auszuwählen und zu kopieren. (Beachten Sie die Zeilenumbrüche am Ende des Textes.)

Auch wie in den Quellennotizen erwähnt. Diese Arbeit für Einzelbyte-Zeichensätze.

sed.exeist möglicherweise in der Lage, mit Unicode umzugehen, aber das habe ich noch nicht ganz geklärt ... Wenn Sie wissen, wie das geht, posten Sie bitte die Informationen hier oder vielleicht in meinem Beitrag zu einer bestimmten Frage zu diesem Problem : Kann-Gnu-Sed-für-Windows-Griff-Unicode

Dies ist die sed.exeVersion:

@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  

Hier ist die Python-3Version:

##==============================================##
## 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() 
Peter.O
quelle
Funktioniert hervorragend mit Python 2.5 auch unter Windows. Süss!
Dennis
Dies ändert den Status der Zwischenablage. Ich würde das gerne vermeiden. Wenn es jedoch funktioniert, könnte ich das akzeptieren.
Ron Klein
2

Wenn Sie dies nicht so oft tun müssen, können Sie die Zeile in dieses Online-Tool kopieren , um die Umkehrung durchzuführen.

Gelatine
quelle
Gute Idee, aber es geht darum, in der Notepad ++ - Umgebung weiterzuarbeiten und nicht auf eine externe Ressource (einen Browser) zuzugreifen.
Ron Klein
Tool ist leider offline
Antonio
2

Mir ist klar, dass hierfür ein anderes Tool verwendet wird, aber Sie können Text in Excel umkehren und dann zurückkopieren. Erstellen Sie eine Tabelle und fügen Sie dieses Makro hinzu:

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

Wenn Sie diese Funktion regelmäßig verwenden möchten, weisen Sie das Makro für den einfachen Zugriff einer Schaltfläche in der Symbolleiste zu. Kopieren Sie Text in eine beliebige Zelle. Stellen Sie sicher, dass die Zelle ausgewählt ist, und führen Sie das Makro aus. Kopieren Sie den generierten Text zurück in Notepad ++.

Überraschend, dass diese einfache Funktion nicht in Notepad ++ oder über ein Plugin wie verfügbar ist TextFX.

AlainD
quelle
1

In der BinHex-Plug-in-Version 2.0 von Notepad ++ ist eine String-Reverse-Funktion implementiert.

Sie können die Zeichenfolge markieren, die umgekehrt werden soll, und Ctrl+ drücken R.

flederohr
quelle
0

Eine Erweiterung der Idee von gor, wenn Ihre Zeichenfolge weniger als zehn Zeichen umfasst:
Erstellen Sie daraus ein Makro.
Markieren Sie den gewünschten Bereich in N ++

Suche:

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

ersetzen:

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

In Auswahl ersetzen: markiert

N ++ unterstützt nur zehn Gruppen, das ist also alles, was Sie bekommen, aber mindestens zehn Buchstaben auf einmal.

Die Regex-Engine des IE unterscheidet sich von der akzeptierten in Bezug auf diese Art von Regex, sodass dies in IE möglicherweise ohne die Iterationen möglich ist.

SamGoody
quelle
0
  1. Wählen Sie den Text aus, den Sie umkehren möchten.
  2. Teilen Sie es in mehrere Zeilen auf, indem Sie das Fenster "Ersetzen" mit "In Auswahl" und "Regulärer Ausdruck" verwenden, um alle (.) Durch \ n \ 1 zu ersetzen
  3. Wählen Sie den Text erneut aus (aus irgendeinem Grund wird das letzte Zeichen nach Schritt 2 nicht ausgewählt).
  4. Verwenden Sie die Antwort auf Zeilenreihenfolge umkehren in Notepad ++ , um die Zeilen umzukehren.
  5. Kombinieren Sie die Zeilen neu, indem Sie das Fenster "Ersetzen" mit "In" und "Erweitert" verwenden, um "Alle \ n" durch eine leere Zeichenfolge zu ersetzen.
  6. Möglicherweise müssen Sie überflüssige Zeilenumbrüche entfernen.
Gnubie
quelle