Wie lösche ich mit Notepad ++ Zeilen wie mit Eclipse?

74

Eclipse verfügt über eine Tastenkombination, mit der entweder die aktuelle Zeile (falls nichts ausgewählt ist) oder alle Zeilen, die Teil des aktuell ausgewählten Texts sind, gelöscht werden: Ctrl+ D.

Gibt es eine Möglichkeit, Ctrl+ Ddasselbe in Notepad ++ zu tun?

Das Beste, was ich tun kann, ist, die Verknüpfung zu Scintilla neu zuzuordnen. Dabei SCI_LINE_DELETEwird jedoch immer nur eine Zeile gelöscht , auch wenn die Auswahl mehrere Zeilen umfasst.

Matt Ball
quelle

Antworten:

93

Ctrl+ Shift+ LWird die gleiche Wirkung erzielen.

Ctrl+ Llöscht die Zeile, behält sie jedoch in Ihrer Zwischenablage und ersetzt den Inhalt der Zwischenablage.

Ich bin mir nicht sicher, ob Sie Strg + D zuordnen können, um dasselbe zu tun, oder nicht. Ich habe nicht wirklich mit den Tastaturzuordnungen mit Notepad ++ herumgespielt, da sie denen von Visual Studio sehr ähnlich sind

Anthony Shaw
quelle
14
Brillant! Jetzt muss ich nur noch herausfinden, was zugeordnet Ctrl+List ... edit aha, es ist zugeordnet SCI_LINECUT. Das war buchstäblich der nächste Scintilla-Befehl SCI_LINE_DELETE.
Matt Ball
26
Bitte beachten Sie, dass Ctrl+Ldie Linie abgeschnitten wird (kopieren Sie sie in Ihre Zwischenablage). Um die Zeile tatsächlich zu löschen Ctrl+Shift+L, werden die ausgewählten Zeilen gelöscht, ohne die Zwischenablage zu überschreiben.
Rosdi
1
@ RØŠÐÎ SCI_LINEDELETEist das, was zugeordnet Ctrl+Shift+Lwurde. Ich habe das versucht, aber es hat nur die erste der ausgewählten Zeilen gelöscht (ohne sie in die Zwischenablage zu kopieren), ähnlich wie bei OP. Vermisse ich etwas?
Jinglesthula
4
Warum ist das nicht im MenüEdit > Line Operations
aliopi
20

Ich musste Karte Ctrl+ Dzu beiden SCI_LINEDELETE und SCI_LINECUTum es wie Eclipse zu machen verhalten. Hoffe das ist hilfreich.

Sie müssen auch deaktivieren oder neu binden, SCI_SELECTIONDUPLICATEdamit kein Konflikt auf Ctrl+ besteht D.
Um eine Verknüpfung zu deaktivieren, markieren Sie sie, klicken Sie Modifyauf DropDownList festlegen None, klicken Sie Applyzuerst und dann auf Okay.

Alex
quelle
1
Wie kam es, dass beide benötigt wurden?
Jonathan Benn
1
Wenn ich beiden die gleiche Verknüpfung zuordnete, wird nur die erste Zeile der ausgewählten Zeilen und die Zeile, auf der sich der Cursor befand, gelöscht. (Ich habe Strg + Umschalt + D verwendet, damit ich mich nicht um die Auswahl der doppelten Bindung kümmern musste.)
jinglesthula
14

Makro ist hier eine gute Wahl. Obwohl das Makro, das ich gefunden habe, ein bisschen verzögert ist (Sie können sehen, dass es eine Viertelsekunde Verzögerung zwischen STRG-D-Treffer und dem Löschen von Zeilen bei einer großen Auswahl gibt), funktioniert es sowohl bei einer einzelnen Zeile als auch bei der Auswahl mehrerer Zeilen hervorragend und deckt verschiedene Bereiche ab heikle Fälle.

Mein Makro lautet also:

STRG + J - Wenn mehrere Zeilen ausgewählt sind, werden diese zu einer einzelnen Zeile
HOME (die übliche HOME-Schaltfläche) zusammengefasst. Bewegt den Cursor an den Anfang einer Zeile (oder an den Anfang einer verbundenen Zeile).
UMSCHALT + ENDE - Wählt die Zeile bis zum Ende aus, beginnend an der Cursorposition
STRG + UMSCHALT + L - Löscht die gesamte Zeile

Diese Reihe von Aktionen deckt alle möglichen Szenarien für das Löschen von Zeilen ab, die ich bisher bei starker Nutzung von Notepad ++ erlebt habe.

Jan Domozilov
quelle
Ich weiß, ich bin ein paar Jahre zu spät, aber würde dieses Makro nicht genauso gut mit DELETE anstelle von STRG + UMSCHALT + L als letztem Befehl funktionieren? Wenn ich Sie richtig verstehe, haben Sie den gesamten zu löschenden Text bereits mit den ersten drei Befehlen markiert.
Bjarte Aune Olsen
9

In Notepad ++ gibt es eine Verknüpfung zum Löschen einer Zeile: Ctrl+ Shift+ L.. Damit wird jedoch nur eine einzelne Zeile gelöscht.

Selbst wenn mehrere Zeilen ausgewählt sind, wird nur die Zeile gelöscht, in der sich der Cursor befindet, und nicht die markierten Zeilen.

Um eine Reihe ausgewählter Zeilen auf einfachste Weise zu löschen, müssen Sie ein Makro mit den folgenden Tastenkombinationen aufnehmen:

Ctrl+J

gefolgt von

Ctrl+ Shift+L

Dies wird zuerst JOINdie ausgewählten Zeilen und dann DELETEdie gesamte Zeile.

Das ist besser als mit einer Kombination aus CUTund DELETEAnsatz , wie oben erwähnt (was ich versucht habe) , weil auf einigen Fällen wird es auch nicht ausgewählten Zeilen löscht.

Öffnen Sie den Technologen
quelle
4

Als Nicht-Makro-Alternative zu @Jan Domozilovs Antwort habe ich die folgenden Schritte ausgeführt (unter Verwendung von Notepad ++ v6.5.1 (UNICODE)):

  1. Im Einstellungen - Menü wählen Shortcut Mapper.
  2. Im Hauptmenü Registerkarte gesetzt Join Lines(Zeile 26) Ctrl+Alt+D.
  3. Klicken Sie auf die Registerkarte Scintilla-Befehle .
  4. Setzen Sie SCI_LINEDELETE(Zeile 90) auf Ctrl+D.
  5. Schließe das Fenster.

Auf diese Weise können Sie mit einer kleinen Änderung das gewünschte Verhalten ausführen. Sie wählen Ihren Text aus, führen den Befehl Linien verbinden mit aus Ctrl+Alt+D, lassen nur die AltTaste Dlos und drücken erneut, um den Text zu löschen.

skia.heliou
quelle
0

Eine andere einfachere Möglichkeit besteht darin, die backspaceSchaltfläche nach der Auswahl zu verwenden. Dadurch wird die ausgewählte Zeile durch die Rücktaste ersetzt.

Hitesh Wadhwani
quelle
-1

Mit STRG + ENTF können Sie den gesamten Inhalt einer Zeile löschen. Dann müssen Sie nur noch DELETE verwenden, um den Zeilenvorschub zu entfernen. Wenn Ihnen das nicht ausreicht, können Sie ein Makro erstellen, um beide Aktionen auszuführen.

Da es in der neuesten Version anscheinend nicht mehr funktioniert, empfehle ich Ihnen, den Makro-Ansatz für das gesamte Problem zu verwenden. Gehen Sie zu "Makro", "Aufnahme starten" und drücken Sie "Start", "Umschalt" + "ENDE", "LÖSCHEN", "LÖSCHEN". Gehen Sie dann zu "Makro" und beenden Sie Ihr Makro. Gehen Sie danach zu "Save Current Recorded Macro" und wählen Sie einen Namen und eine Verknüpfung aus (z. B. STRG + ENTF). Dadurch wird die Verknüpfung zum Löschen der Zeile wieder aktiviert.

private_meta
quelle
Ctrl+Deletelöscht keine Zeilen in Notepad ++ für mich (ich habe keine anderen Tasten als neu zugeordnet Ctrl+D).
Matt Ball
Welche Version von Notepad ++ verwenden Sie? Es funktioniert auf Notepad ++ 5.8.2 unter Win7
private_meta
5.8.7 (die neueste Version) unter Win7 x64. Meinten Sie Ctrl+Backspace? (funktioniert auch bei mir nicht)
Matt Ball
Ah, ich habe es gerade mit 5.8.7 getestet und es hat auch nicht funktioniert, lass mich sehen
private_meta
Ich habe meine Antwort aktualisiert
private_meta
-1

STRG + UMSCHALT + ENTF eignet sich hervorragend zum Löschen einer ganzen einzelnen Zeile.

Zuzu
quelle
2
Das OP möchte alle Zeilen löschen , die Teil des aktuell markierten Textes sind . Ihre Verknüpfung löscht nur die erste Zeile einer Auswahl.
Nixda