Notepad ++ Multi-Bearbeitung

112

Wie kann ich in Notepad ++ mehrere Cursor haben?

Ich werde ein paar tabulatorgetrennte Werte haben. Ich muss eine Abfrage für alle diese Werte schreiben. Wenn ich beispielsweise eine Excel-Datei mit folgenden Werten erhalte:

1234 xyz pqr
2345 sdf kkk
...

Ich möchte diese ganzen Daten in Notepad ++ kopieren und die Abfrage schreiben, wobei alle Werte gleichzeitig eingefügt werden.

So was:

Insert into tbl (1234, xyz) where clm = 'pqr'
Insert into tbl (2345, sdf) where clm = 'kkk'
...

Ich habe es mit meinem vorherigen Texteditor Ultraedit gemacht. Kann dies mit Notepad ++ gemacht werden?

Anu
quelle
2
Äh ... Verwenden Sie SublimeText. :)
Praveen Kumar Purushothaman
Ich mache das die ganze Zeit mit Notepad ++, bin aber bei diesem Job mit UltraEdit festgefahren ... Wie mache ich das mit UltraEdit? :)
Ron Jensen - Wir sind alle Monica

Antworten:

166

Ja: Halten Sie einfach die AltTaste gedrückt, klicken und ziehen Sie, um die Zeilen auszuwählen, deren Spalten Sie bearbeiten möchten, und beginnen Sie mit der Eingabe.

Sie können sich auch an Einstellungen> Einstellungen ... , und im Schnitt Registerkarte einschalten mehr Bearbeitung sofort Auswahl mehrerer voneinander getrennter Bereiche oder Spalten von Text zu bearbeiten zu können.

Es ist viel intuitiver, da Sie Ihre Änderungen während der Eingabe live sehen können.

BoltClock
quelle
2013 hier, v5.2: Es gibt keine (mehr) Bearbeitungsregisterkarte oder Mehrfachbearbeitungsoption.
Wouter
@Wouter: Es ist in Version 6.2 immer noch für mich da ... wenn es in Version 5.2 nicht vorhanden ist, stimmt möglicherweise etwas anderes nicht, aber ich kann nicht weiter darauf eingehen.
BoltClock
@ BoltClock: Cool! Irgendwo zwischen Version 5.2 und Version 6.2 muss diese Funktion hinzugefügt worden sein. Oder vielleicht ist es kurz vorher irgendwo verloren gegangen :)
Wouter
1
Eine Demo finden Sie hier: notepad-plus-plus.org/features/multi-editing.html . Es sieht aus wie eine alte Version, aber ich habe es in Version 6.4.5 versucht und es hat gut funktioniert.
Brasilienianldsjaguar
10
alt+up/downhat bei mir nicht funktioniert. Ich musste alt+shift+up/downstattdessen verwenden. v6.9.1
AXO
51

Führen Sie an der Stelle, an der Sie Text hinzufügen möchten, Folgendes aus:

Shift+ Alt+down arrow

und wählen Sie die gewünschten Zeilen aus. Geben Sie dann ein. Der eingegebene Text wird in alle von Ihnen ausgewählten Zeilen eingefügt.

Devlin Carnate
quelle
1
Wirklich die beste Antwort hier.
Etienne Gautier
Das ist eine noch bessere Antwort! Denken Sie daran, Shift + Alt für alle Aktionen wie Ausschneiden, Kopieren zu verwenden!
Gaurav
Ich habe lange nach dieser Funktion gesucht, danke!
michal.hubczyk
46

Sie können Inhalte in mehreren Zeilen hinzufügen / bearbeiten, indem Sie die Steuertaste verwenden. Dies ist eine Multi-Edit-Funktion in Notepad ++, die wir über die Einstellungen aktivieren müssen. Halten Sie die Steuerung gedrückt, wählen Sie Stellen aus, an denen Sie Text eingeben möchten, lassen Sie die Steuerung los und beginnen Sie mit der Eingabe. Dadurch wird der Text an allen zuvor ausgewählten Stellen aktualisiert.

Geben Sie hier die Bildbeschreibung ein

Ref: http://notepad-plus-plus.org/features/multi-editing.html

MoHaN K RaJ
quelle
1
Ich liebe das GIF, das du gemacht hast. Danke dafür.
Julien
Genau das wollte ich. Danke dir.
Sol
23

Notepad ++ verarbeitet jetzt auch mehrere Cursor.

Gehen Sie zu Einstellungen => Einstellungen => Bearbeiten und aktivieren Sie "Aktivieren" in "Einstellungen für mehrere Bearbeitungen". Verwenden Sie dann einfach Strg + Klicken, um mehrere Cursor zu verwenden.

Feature-Demo auf der offiziellen Website hier : https://notepad-plus-plus.org/features/multi-editing.html

Balmipour
quelle
makellose Antwort2
Gaurav
22

Sie können Edit > Column Editor...Text in die aktuelle und die folgenden Zeilen einfügen. Die Verknüpfung ist Alt + C.

Niels van der Rest
quelle
8

Notepad ++ verfügt über eine leistungsstarke Regex-Engine, mit der Muster nach Belieben gesucht und ersetzt werden können.

In Ihrem Szenario:

  1. Klicken Sie auf den Menüpunkt Suchen \ Ersetzen ...

  2. Füllen Sie das Feld 'Find what' mit dem Suchmuster aus:

    ^(\d{4})\s+(\w{3})\s+(\w{3})$
    
  3. Füllen Sie das Ersetzungsmuster aus:

    Insert into tbl (\1, \2) where clm = \3
    
  4. Klicken Sie auf die Replace AllSchaltfläche.

Und das ist es.

NotePad ++ Fenster Screenshot ersetzen

Alberto De Caro
quelle
Ich verwende Regex seit mehr als 10 Jahren für diese Art von Änderungen, aber viele Leute beheben Regex als verwirrend oder schwer zu erlernen
raider33
6

Die einfachste Methode, um Ihr Problem zu lösen (ohne zu einem anderen Editor zu gehen oder Regex zu lernen), besteht darin, ein Makro aufzuzeichnen.

  • Platzieren Sie den Cursor am Anfang Ihres Textes, klicken Sie auf die Schaltfläche "Aufzeichnen" in der Multifunktionsleiste und bearbeiten Sie dann nur diese eine Textzeile. Sie dürfen nur Pfeiltasten oder Strg + Pfeiltasten verwenden, um sich in Zeichen / Wörtern zu bewegen, anstatt mit der Maus zu klicken. Die Tasten 'home' und 'end' sind ebenfalls nützlich.
  • Wenn Sie mit dieser einen Zeile fertig sind, bewegen Sie den Cursor (erneut ohne Maus) an den Anfang der nächsten Zeile.
  • Klicken Sie auf die Schaltfläche "Aufnahme beenden".
  • Klicken Sie auf die Schaltfläche "Makro abspielen", um zu überprüfen, ob es in der nächsten Zeile wie erwartet funktioniert.
  • Klicken Sie auf "Makro mehrmals ausführen", um es immer wieder und immer wieder auszuführen ...: P.
Ein Vorteil gegenüber Cursorn mit mehreren Bearbeitungen besteht darin, dass Sie nicht manuell auf jede einzelne Zeile klicken und Cursor platzieren müssen. Der zweite Vorteil ist, dass Sie mit tabulatorgetrennten Daten arbeiten können, die keine einheitliche Größe / Länge haben. Verwenden Sie einfach Strg + Links / Rechts, um Wörter zu überspringen.

Ehrlich gesagt haben Makros in N ++ ungefähr ein Jahr meines Lebens gerettet.

cr45hin
quelle
1

Notepad ++ hat nur Spaltenbearbeitung. Dies ist nicht ganz dasselbe wie bei mehreren Cursorn.

Sublime Text hat eine wunderbare Implementierung davon, könnte einen Blick wert sein ...
Es ist ein relativ neuer Editor (2011), der ziemlich schnell an Popularität gewinnt: http://www.google.com/trends/explore#q=Notepad% 2B% 2B% 2C% 20Sublime% 20Text & cmpt = q

Bearbeiten: Anscheinend wurde irgendwo in der Umgebung von Notepad ++ Version 6.x die Bearbeitung mehrerer Cursor hinzugefügt, aber es gibt noch einige erweiterte Funktionen in Sublime, wie "Nächstes Vorkommen auswählen".

Wouter
quelle
Die Multi-Cursor-Bearbeitung von npp ist bei weitem nicht so gut wie die mehrzeilige Bearbeitung von sublime.
th1rdey3
1
Korrektur: die Multi-Cursor der NPP - Bearbeitung ist bei weitem nicht so gut wie mehrzeilige Bearbeitung von erhabener durch Standard . Die Szintilla-Bibliothek bietet alle Funktionen, die sublime unterstützt. Jeder Benutzer kann ein Plugin wie nppscripts oder pythonscript herunterladen, um auf das zugrunde liegende npp-Framework zuzugreifen und diese Skripte Tastaturkürzeln zuzuordnen, wobei alle erhabenen Befehle emuliert werden. Für diejenigen, die sich nicht die Mühe machen möchten, ihren Editor zu konfigurieren, zahlen Sie auf jeden Fall für das Erhabene.
user2867288
Ich verstehe, woher Sie kommen, aber es ist nicht fair, einen normalen Benutzer zu bitten, das zugrunde liegende Editor-Framework für eine normale Funktion zu skripten. Ich würde Ihnen zustimmen, wenn ein Plugin dies bereits getan hätte (wenn ich mehr Zeit hätte, würde ich eines erstellen). Auch in diesem kürzlich veröffentlichten Beitrag sourceforge.net/p/scintilla/feature-requests/1085 heißt es, dass "Als nächstes hervorheben" möglicherweise einfach ist, Sie jedoch immer noch keine Pfeiltastenfunktionalität haben können. Ich frage mich, wie einfach "Überspringen" auch zu implementieren wäre. Markieren Sie als nächstes, überspringen Sie als nächstes, und Pfeile können manchmal hilfreich sein.
ShawnFumo
0

Sie können dazu das Plugin ConyEdit verwenden. Führen Sie die folgenden Schritte aus, während ConyEdit im Hintergrund ausgeführt wird:

  1. Verwenden Sie die Befehlszeile cc.spc /\t/ a, um den Text in Spalten aufzuteilen und in einem zweidimensionalen Array zu speichern.
  2. Verwenden Sie den Befehl cc.pzum Drucken unter Verwendung des Inhalts des Arrays.
Dick
quelle