Wie lösche ich bestimmte Zeilen in Notepad ++?

94

Ich bereinige einige Codedateien (C #) und möchte die Regionen entfernen. Und ich möchte alle Zeilen löschen, die die Zeichenfolge '#region' haben. Das ist nur ein Beispiel, und ich kann mir mehrere weitere Anwendungen vorstellen, aber ist das überhaupt möglich?

Rismo
quelle
2
Ich bin versucht, diese Frage als nicht zum Thema gehörend abzustimmen ... Es handelt sich hauptsächlich um eine Frage zu Notepad ++ und einem bestimmten Arbeitsmuster, die jedoch nicht unbedingt mit der Programmierung zu tun hat: /
Andreas Niedermair
@ AndreasNiedermair zustimmen
Anzeigename

Antworten:

39

Sie können das Menü Suchen -> Ersetzen ... ( Ctrl+ H) verwenden.

Es verfügt über eine Funktion für reguläre Ausdrücke zum Ersetzen. Sie können einen regulären Ausdruck verwenden, der sowohl mit #region als auch mit allen anderen Elementen in der Zeile übereinstimmt, und ihn durch Leerzeichen ersetzen.

John T.
quelle
Danke, ich habe das gemacht und es funktioniert. Aber jetzt versuche ich, \ n \ n durch nur ein \ n zu ersetzen, aber es scheint nicht zu funktionieren, irgendwelche Ideen?
Rismo
1
Verwenden Sie die erweiterte Suche zum Ersetzen von Escape-Sequenzen (Optionsfeld direkt über Regex)
John T
Danke John. Ich habe das gemacht und arbeite für einen Zeilenumbruch \ n, aber nicht für zwei. Ich suche nach \ n \ n und ersetze es durch \ n, aber es funktioniert nicht. Funktioniert es für dich?
Rismo
1
Wenn Sie das Dokument in Windows eingegeben haben, lauten die Zeilenenden \ r \ n. Zeilenenden im UNIX-Stil sind \ n.
John T
5
Ich habe auch gerade bemerkt, dass TextFx -> TextFx Bearbeiten -> Überschüssige leere Zeilen
löschen
278

Notepad ++ v6.5

  1. Suchmenü -> Suchen ... -> Mark tab -> Suchen nach : Suchtext , überprüfen Lesezeichen Linie , dann Mark All . Dadurch werden alle Zeilen mit dem Suchbegriff markiert. Die blauen Kreise am Rand werden angezeigt.

  2. Dann Suchmenü -> Lesezeichen -> Remove Markiert Linien . Dadurch werden alle mit Lesezeichen versehenen Zeilen gelöscht.

Sie können auch einen regulären Ausdruck zum Suchen verwenden. Diese Methode führt nicht zu einer Leerzeile wie bei John und löscht die Zeile tatsächlich.

Ältere Versionen

  1. Suchmenü -> Suchen ... -> Suchen nach : Suchtext , überprüfen Lesezeichen Zeile und klicken Sie auf Alle suchen .
  2. Dann Suchen -> Lesezeichen -> Mit Lesezeichen versehene Zeilen entfernen
Strahl
quelle
8
Danke dir! Wow, mir war nicht bewusst, dass NP ++ dies tat ... eine großartige Zeitersparnis. Zeilen suchen und mit Lesezeichen versehen + Zeilen löschen. Genial. Danke dir!!
Matthew M.
Was für ein Hack, warum kann ich nicht einfach regex ersetzen \ r \ n durch "" :(
felickz
13
Dies ist eines dieser kleinen Juwelen, bei denen ich wünschte, ich könnte mehr als 1 Stimmen abgeben. Ich kann Ihnen nicht sagen, wie viel Zeit ich im Laufe der Jahre verschwendet habe, ohne zu bemerken, dass dies verfügbar war! Das einzige Problem ist jetzt, dass ich produktiver sein muss ...
Milner
1
Wenn Sie danach suchen. 'Mark' hat jetzt eine eigene Registerkarte im Popup-Menü Suchen.
Bunnybare
1
@ Bunnybare, danke. Ich habe die Antwort für die neueste Version aktualisiert.
Ray
4

Hier ist eine Möglichkeit, die Zeilen mit "YOURTEXT" vollständig zu entfernen:

  • Öffnen Sie das Dialogfeld Ersetzen
  • Geben Sie die folgende Suchzeichenfolge ein: .*YOURTEXT.*[\r]?[\n] Suchzeichenfolge ein (Ersetzen Sie YOURTEXT durch Ihren Text)
  • Aktivieren Sie "Regulärer Ausdruck"
  • Deaktivieren Sie ". Entspricht Zeilenumbruch"

Der angegebene reguläre Ausdruck entspricht sowohl dem Windows- als auch dem Unix-Zeilenende.

Wenn Ihr Text Zeichen enthält, die eine besondere Bedeutung für reguläre Ausdrücke haben, wie z. B. den Backslash, müssen Sie diese maskieren.

Okrokette
quelle
Warum verwenden Sie die Zeichenklasse für ein einzelnes Zeichen?
Toto
4

Dies ist die häufigste Funktion von Notepad ++, mit der ich meinen Code aktualisiere.

Alles was Sie tun müssen ist:

  • Wählen Sie eine gemeinsame Zeichenfolge aus, die in allen Zeilen vorhanden ist.
  • Drücken Sie Ctrl+F
  • In der Mark Registerkarte, fügen Sie die wiederkehrende Zeichenfolge und überprüfen Sie die Lesezeichen Linie Checkbox.
  • Klicke auf Mark All
  • Gehen Sie nun zum Menü SuchenLesezeichen → Mit Lesezeichen versehene Zeilen entfernen

Sie können auf diesen Link für eine bildliche Erklärung verweisen.

http://www.downloadorinstall.com/best-notepad-tips-and-tricks-for-faster-work-and-development/

Rishabh Pant
quelle
Der Link scheint unterbrochen zu sein (oder erfordert möglicherweise eine unheimliche Menge an JavaScript-Code, um verwendet zu werden).
Peter Mortensen
2

Jacobs Antwort auf John T funktioniert perfekt, um die gesamte Zeile zu löschen, und damit können Sie in Dateien suchen. Stellen Sie sicher, dass unten "Regulärer Ausdruck" aktiviert ist.

Lösung: ^.*#region.*$

Nick
quelle
2
er sagte, er möchte die Zeile löschen, nicht durch etwas ersetzen
felickz
1

Untersuchen Sie, was Ihre EOL ist, \ n oder \ r \ n. Ersetzen Sie dann .*#region.*\r\nim Regexpr-Modus durch nichts.

Val
quelle
0

Sie können versuchen, #region durch \ n zu ersetzen, indem Sie den erweiterten Suchmodus aktivieren.

Nordpol
quelle
2
OP sagte, er wollte "alle Zeilen löschen", Sie würden es durch eine neue Zeile
ersetzen
0

Mit Regex und Find & Replace können Sie alle Zeilen mit #region löschen, ohne leere Zeilen zu hinterlassen. Weil aus irgendeinem Grund Rays Methode auf meinem Computer, nach dem ich gesucht habe, nicht funktioniert hat(.*#region.*\n)|(\n.*#region.*) und ließ die Ersetzungsbox leer.

Dieser Regex stellt sicher, dass das Wenn #region reguläre Ausdruck stellt in der ersten Zeile gefunden wird, die endende neue Zeile gelöscht wird und wenn es in der letzten Zeile gefunden wird, die vorhergehende neue Zeile gelöscht wird.

Trotzdem ist Rays Lösung die bessere, wenn sie für Sie funktioniert.

George
quelle