Wenn jemand da draußen alt genug ist, um sich an den ISPF-Editor auf IBM-Mainframes zu erinnern, dann wissen Sie, was ich meine. Für den Rest von euch ...
Ich suche einen kostenlosen Editor, mit dem ich nur bestimmte Spalten einer Textdatei bearbeiten kann (vorzugsweise nur in einer Reihe zusammenhängender Zeilen).
NotpePad++, Crimson Editor (der sich leider länger in der Entwicklung befindet) und UltraEdit (der leider nicht kostenlos ist) beanspruchen alle einen Spaltenmodus, aber das ist nur die Möglichkeit, rechteckige Bereiche einer Textdatei zu kopieren/einzufügen.
Während das sicherlich schön ist, möchte ich in der Lage sein, Text zu suchen/ersetzen und in der Lage zu sein, ihn auf einen Bereich oder zusammenhängende Spalten zu beschränken, vorzugsweise auch auf einen Bereich zusammenhängender Zeilen.
Ein schlechtes Beispiel:
Tim likes beer
Toms likes beer very much
Bob does not like either beer or wine
Ann likes beer, and also wine (and the Oxford comma ;-)
und hier ist es noch einmal, mit einigen Zeilen- und Spaltennummern:
1 2 3 4
1234567890123456789012345678901234567890
1 Tim likes beer
2 Toms likes beer very much
3 Bob does not like either beer or wine
4 Ann likes beer, and also wine
Wenn ich zwischen den Spalten 10 und 20 alles "Bier" in "Fisch" ändern möchte, wäre das Ergebnis (Änderungen großgeschrieben).
1 2 3 4
1234567890123456789012345678901234567890
1 Tim likes FISH
2 Toms likes FISH very much
3 Bob does not like either beer or wine<=== not changed, not between cols 10 & 20
4 Ann likes FISH, and also wine
Als Bonus möchte ich es auch auf bestimmte Zeilen beschränken, sagen wir Zeilen 2 bis 4, in diesem Fall wäre das Ergebnis:
1 2 3 4
1234567890123456789012345678901234567890
1 Tim likes beer <== not changed, not between lines 2 and 4
2 Toms likes FISH very much
3 Bob does not like either beer or wine <== not changed, not between cols 10 & 20
4 Ann likes FISH, and also wine
Frage: Kennt jemand einen (vorzugsweise) kostenlosen Widows-Texteditor, der das kann?
Auch wenn ich noch nicht im Ruhestand bin, bin ich " alt genug, um mich an den ISPF-Editor auf IBM-Mainframes zu erinnern ": Ich benutze (und liebe) ihn immer noch mehr oder weniger jeden Tag ...
Um Ihre Frage tatsächlich zu beantworten, schlage ich vor, dass Sie sich SPFLite ansehen . Hier ist ein Zitat dazu aus Wikipedia :
Editoren, die in der PC-Umgebung verwendet werden, arbeiten typischerweise auf eine deutlich andere Weise als diejenigen, die auf großen Mainframe-Systemen in Betrieb sind. PC-Editoren sind fast überall zeichenstromorientiert, während Mainframe-Editoren typischerweise textzeilenorientiert sind. Benutzer, die sowohl auf PCs als auch auf Mainframes arbeiten müssen, müssen daher in zwei unterschiedlichen Arbeitsstilen produktiv werden.
SPFlite ist ein kostenloser Dateimanager und Texteditor, der auf Windows-PCs eine vertraute Arbeitsumgebung für diejenigen bietet, die an IBMs Mainframe-basiertes ISPF gewöhnt sind. Neben der Bereitstellung der grundlegenden ISPF-Funktionskompatibilität hat SPFLite erweiterte Möglichkeiten hinzugefügt, um die Bearbeitungsfähigkeiten zu verbessern.
Sobald Sie eine Datei im Bearbeitungsmodus öffnen, sollten Sie Ihre (Beispiel-)Frage nur mit diesem (primären) Bearbeitungsbefehl lösen können:
c beer fish 10 20 all
Aber warten Sie, es gibt noch mehr ... Wenn Sie Ihre Zeile 2 auch mit (sagen wir) .f
und Ihre Zeile 4 mit beschriften würden .l
, kann Ihre Bonusfrage mit diesem Befehl beantwortet werden:
c beer fish 10 20 all .f .l
Einfach, nein?
Ich habe ein benutzerdefiniertes Plugin für Sie geschrieben.
Du brauchst:
Plugin für Notepad++, das eine Such-/Ersetzungsfunktion mit Zeilen- und Spaltenbeschränkung bietet.
Ich habe noch nie zuvor in Python codiert, daher ist der Code möglicherweise nicht sehr pythonisch. Anregungen oder Verbesserungen sind willkommen!
Plugins --> Python Script --> New Script
ColReplace.py
als Dateinamen und klicken Sie auf Speichern .ColReplace.py
Datei in die Datei, die Sie gerade in Schritt 5 erstellt haben.Plugins --> Scripts --> ColReplace
.Zugegeben, die Benutzererfahrung könnte verbessert werden :)
Der vim
Editor kann dies out of the box¹. Es gibt ein einfaches Windows-Installationsprogramm für gvim oder verschiedene Builds sind für die Installation über Chocolaty , cygwin usw. verfügbar.
Vim ist ein Modus-Editor, was bedeutet, dass sich das Editorfenster in mehreren Zuständen befinden kann, einschließlich Einfügen (wo Sie Text eingeben), normal (wo Tastenanschläge Befehle aktivieren, die den Text manipulieren) und visuell (wo Sie Textblöcke auswählen können). .
Der visuelle Modus kann Text auf drei Arten auswählen:
Zeichenweise werden Zeichenbereiche über eine oder mehrere Zeilen ausgewählt.
Zeilenweise wählt ganze Zeilen aus.
Spaltenweise wählt einen rechteckigen Zeichenblock aus, der durch Zeilen-/Spaltenpositionen begrenzt ist.
Letzteres wird aktiviert, indem Sie Ihren Cursor im normalen Modus über eine Ecke Ihres Rechtecks Ctrlvbewegen und drücken und dann den Cursor in die andere Ecke bewegen. An dieser Stelle sehen Sie die hervorgehobene Spalte.
Als Nächstes müssen Sie einen Such- und Ersetzungsbefehl ausführen, der Übereinstimmungen in der aktuellen (oder letzten) visuellen Auswahl findet:
:%s/\%Vbeer/fish/g
Beachten Sie, dass dies mit allen Instanzen von „Bier“ übereinstimmt, die innerhalb Ihrer Auswahl beginnen , auch wenn sie außerhalb davon enden. Sie würden beide Seiten der Suche innerhalb der Auswahl verankern, wenn Sie dieses Verhalten nicht möchten:
:%s/\%Vbeer\%V/fish/g
Beachten Sie auch, dass der Anfang %
in diesem Befehl vim anweist, die gesamte Datei zu bearbeiten. Wenn Sie vom visuellen Modus direkt in den Befehlsmodus wechseln (durch Drücken :von ), wird die Eingabeaufforderung mit dem Präfix vorausgefüllt, :'<,'>
das nur für den ausgewählten Bereich gilt. Es ist in Ordnung, dies zu verwenden, aber da die Such- und Ersetzungsfunktion zeilenweise arbeitet, müssen Sie immer noch verwenden \%V
, um tatsächlich nur innerhalb der Auswahl zu passen.
:'<,'>s/\%Vbeer/fish/g
Für einen schnellen Überblick über einige andere Dinge, die Sie mit dem Spaltenmodus tun können, sehen Sie sich dieses VimCast-Video an .
¹ Das bedeutet nicht, dass Sie den Editor sofort verwenden können. Es gibt einen alten Witz: Wenn Sie eine gute Folge zufälligen Textes wollen, setzen Sie sich mit VIM zusammen und bitten Sie ihn, den Editor zu verlassen. Wenn Sie mit der Verwendung von vim nicht vertraut sind, lohnt es sich möglicherweise, ein paar Minuten mit einem einführenden Tutorial zu verbringen, damit Sie zumindest die Grundlagen zum Öffnen, Bearbeiten, Speichern und Beenden des Editors kennen. Das Nutzungsparadigma unterscheidet sich ein wenig von den meisten Anwendungen, die Sie regelmäßig unter Windows verwenden. Es kann sehr leistungsfähig sein, aber nehmen Sie sich die Zeit, sich mit den Grundlagen vertraut zu machen, bevor Sie die in dieser Antwort beschriebene fortgeschrittenere Verwendung versuchen.
SynWrite- Editor: Wenn Sie den Spaltenblock von Zeile 2 bis Zeile 4 und von Spalte 10 bis Spalte 20 auswählen, können Sie in dieser Auswahl Alle ersetzen. (Dies ist eine Option im Dialogfeld „Ersetzen“).
Pierre. Vriens
Mawg sagt, Monica wieder einzusetzen
Pierre. Vriens
Pierre. Vriens
Mawg sagt, Monica wieder einzusetzen
Pierre. Vriens
Mawg sagt, Monica wieder einzusetzen