Editor mit mehrzeiligem Suchen und Ersetzen

3936
Art

Ich suche nach einem Texteditor für Windows, der Such- und Ersetzungsoperationen für mehrzeilige Textblöcke ausführen kann.

Es sollte in der Lage sein, diesen Vorgang für einen Ordner oder aktuell geöffneten Dateien auszuführen.

Idealerweise werden reguläre Ausdrücke unterstützt, dies ist jedoch nicht unbedingt erforderlich.

Vielen Dank!

4

6 Antworten auf die Frage

8
Shane

Ich habe Notepad ++ eine Zeit lang verwendet, als ich noch auf einem Windows-Computer Sachen erledigen musste; Es hat eine anständige Unterstützung für reguläre Ausdrücke. Es verfügt über eine intuitive Benutzeroberfläche, und Sie müssen sich keine Tastenkombinationen und Tastenkombinationen merken.

Versuchter Notizblock, funktioniert gut, nur ein kleines Problem ist, dass mehrzeiliger Text in einem kleinen Textbereich, der für Suchsätze vorgesehen ist, nicht richtig angezeigt wird. (seltsame Zeichen, wo Tab und \ r \ n sein sollten). Ansonsten lieben es! Insbesondere die Gruppierung von Suchergebnissen. Art vor 14 Jahren 0
Hmm, es ist schon eine Weile her, seit ich es benutzt habe, aber ich denke, es gibt Optionen, wie Zeilenumbrüche, Wagenrückläufe und Registerkarten aussehen. Vielleicht möchten Sie etwas mit den Einstellungen herumspielen. Ich habe zwischen sichtbaren Symbolen und einem eher konventionellen Erscheinungsbild gewechselt, je nachdem, was ich tat. Shane vor 14 Jahren 0
Notepad ++ ist auch ein gebrauchsfertiges Paket im Ubuntu-Software-Manager. Ich benutze es für mein mehrzeiliges Ersetzen und es funktioniert sehr gut. Felix Dombek vor 5 Jahren 0
2
wfaulk

Vim

Blöcke werden unter anderem mit v, Ctrl-V oder Shift-V ausgewählt. Nach der Auswahl werden Ersatzbefehle standardmäßig für den Block ausgeführt.

Können Sie in vim nach ausgewählten Blöcken in geöffneten Dateien suchen? Art vor 14 Jahren 0
@Art ja, aber ich habe keine Ahnung wie spontan. quack quixote vor 14 Jahren 0
Ich verstehe die Frage nicht. wfaulk vor 14 Jahren 0
Grundsätzlich wähle ich einen Textblock mit "V" aus und möchte dann in der angegebenen Datei / im angegebenen Ordner nach _selected text_ (nicht darin) suchen. Kann vim das tun? Art vor 14 Jahren 0
@Art - Sie möchten einen ausgewählten Textblock in Dateien in einem Ordner finden, oder? Nicht innerhalb, sondern vim verlässt sich auf verschiedene Werkzeuge (grep und dergleichen). Beginnen Sie also damit und sehen Sie, was Sie brauchen. Rook vor 14 Jahren 0
Ich kann mir keinen trivialen Weg vorstellen, nein. Sie könnten sich selbst ein einfaches Skript schreiben, das die Eingabe übernimmt und andere Dateien danach durchsucht, und dieses Skript dann innerhalb von vim als Filter verwenden könnte. Das ist eine seltsame Bitte. wfaulk vor 14 Jahren 0
@Idigas: Eigentlich hat Vim ein eingebautes grep: "`: vimgrep` ", aber ich kann mir keine Möglichkeit vorstellen, einen visuellen Block innerhalb des Musters zu bekommen. wfaulk vor 14 Jahren 0
@wfaulk, danke für deine Beiträge, aber ich denke ich bleibe bei np ++. Art vor 14 Jahren 0
Ja, Vim kann dies definitiv tun, aber ich denke nicht, dass solch ein kleines Feature die Lernkurve von Vim wert ist. Sasha Chedygov vor 14 Jahren 0
2
dmckee

Emacs

Verwenden Sie C-q C-jdiese Option, um im Muster eine neue Linie anzugeben, die mit übereinstimmt oder durch diese ersetzt wird. Nur Text und Regex werden entweder auf einmal oder im Abfragemodus (Bestätigung für jede Übereinstimmung) unterstützt.

Die gewünschten Funktionen sind

replace-string query-replace-string replace-regexp query-replace-regexp 

und sie können alle mit aufgerufen werden M-x <function name>. Einige haben Standardbindungen.

Verwenden Sie C-h f <function-name>diese Option, um zu erfahren, welche Bindung derzeit einer Funktion zugewiesen ist.

Einen Block aus dem zu verwendenden Text auswählen

  1. Mehr der Punkt zu einem Ende des Blocks. Hit C-<space>.
  2. Bewegen Sie den Punkt an das andere Ende. Hit, C-wder den gesamten Block C-yruckt, um den gerippten Block zurückzuholen oder aufzurufen copy-region-as-kill.
  3. M-x <function>dann C-yden Block in den Suchbereich einfügen. Zeilenumbrüche werden selbstverständlich behandelt.
  4. weiter wie gewohnt.
Sie können einen Textblock auch auswählen, indem Sie ihn mit der Maus markieren. Ich weiß, das klingt offensichtlich, aber einige Leute wissen nicht, dass Emacs eine GUI-Anwendung ist. Richard Hoskins vor 14 Jahren 0
1
Jim McKeeth

EditPadPro für den Gewinn! Es macht alles, wonach Sie gefragt haben:

  1. Mehrzeiliges Suchen und Ersetzen
  2. Ersetzen Sie alle offenen Dateien
  3. Regex-Unterstützung

Eigentlich denke ich, dass die kostenlose Version all das auch macht.

Es ist wirklich der beste Texteditor, den ich je benutzt habe. Es verfügt über alle Funktionen, die Sie benötigen. Ich finde normalerweise, dass es über den Ruf der Pflicht hinausgeht.

0
Hallgrim

Wenn ich mehrzeiliges Suchen oder Ersetzen brauche, verwende ich Microsoft Word. Ich verwende Microsoft Word niemals als Texteditor, es sei denn, ich benötige diese Funktion. Mit ^ p können Sie nach Zeilenumbrüchen suchen.

Normalerweise mache ich das:

I edit a text file in my favorite text editor, but I need multi-line search-replace Ctrl-A, Ctrl-C to select and copy all text editor Start Microsoft Word Ctrl-V Search/Replace "First line^pSecond line" with "New first line^pNew second line" Ctrl-A, Ctrl-C to select and copy all from Word Switch back to text editor Ctrl-V to paste newly fixed-up text Continue editing document in my favorite editor 

Das funktioniert für mich.

0
ksg91

Not an text editor, but you should give TextCrawler a shot. It is very lightweight and powerful tool to perform search and replace in files. A simple and good UI to put multiline text.

It allows Standard Search, Regular Expression, Fuzzy Search and Batch Commands.