Freier Texteditor mit Unterstützung für den vollständigen Spaltenmodus

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?

Zu Ihrem " alt genug, um sich an den ISPF-Editor auf IBM-Mainframes zu erinnern ": Ich benutze (und liebe) ihn immer noch mehr oder weniger jeden Tag ... PS (wenn Sie Lust auf einen zusätzlichen Witz haben): was ist der (kurze) ISPF-Nachricht wird angezeigt (oben rechts), wenn Sie ein PDS-Mitglied mit dem Namen „NOT“ speichern … tatsächlich „Mitglied NICHT gespeichert“ … Denken Sie an eine ähnliche Nachricht für ein Mitglied mit dem Namen MÖGLICHERWEISE …
Ist es für Windows verfügbar?
Ja, ist es ... siehe die Antwort, die ich gerade gepostet habe ...
merci für das Kopfgeld!
Entschuldigung, dass die Vergabe so lange gedauert hat. Vielleicht hätte ich das Interesse erhöhen sollen? Eine tolle Antwort. Ich bin mir sicher, dass ich es vor Jahren gefunden habe, aber es war nicht kostenlos. Fantastisch, dass es jetzt so ist. Ich habe diesen Editor geliebt! Jetzt versuche ich, eine IDE zu finden, die es verwendet, damit ich auch kompilieren und debuggen kann :-)
Was genau meinst du mit dem letzten Satz in deinem letzten Kommentar?
Ich meine, dass dies ein großartiger Editor ist, aber beim Codieren möchte ich eine IDE - und einen Editor, aus dem ich meinen Code kompilieren und einen Debugger verwenden kann. Ich bezweifle zwar, dass dies mit ISPedit möglich sein wird, bin aber trotzdem sehr zufrieden damit

Antworten (4)

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) .fund 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?

Notepad++ / 2 Plugins: „Python Script“ und „ColReplace“

Ich habe ein benutzerdefiniertes Plugin für Sie geschrieben.

Du brauchst:

  1. Notepad++
  2. Python-Skript - Plug-in für Notepad++
  3. ColReplace – befolgen Sie die nachstehenden Installationsanweisungen


  • Alle drei Produkte sind kostenlos.
  • Alle drei Produkte laufen (nur) unter Windows.
  • ColReplace kann basierend auf Zeilen- und Spaltenbeschränkungen ersetzen.

ColReplace

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!

Installation

  1. Laden Sie das Repository von ColReplace als ZIP-Datei herunter: Klicken Sie hier und extrahieren Sie die Dateien an einen beliebigen Ort.
  2. Öffnen Sie Notepad++
  3. Klicken Sie im Menü aufPlugins --> Python Script --> New Script
  4. Wählen Sie ColReplace.pyals Dateinamen und klicken Sie auf Speichern .
  5. Kopieren Sie den Inhalt der extrahierten ColReplace.pyDatei in die Datei, die Sie gerade in Schritt 5 erstellt haben.

Verwendungszweck

  1. Klicken Sie im Menü auf Plugins --> Scripts --> ColReplace.
  2. Die erscheinenden Dialoge sollten selbsterklärend sein.

Screenshots

Zugegeben, die Benutzererfahrung könnte verbessert werden :)

Bildschirmfoto Nr. 2 Bildschirmfoto Nr. 3 Bildschirmfoto Nr. 4 Bildschirmfoto Nr. 5

So sehr Notepad++ für mich persönlich uninteressant ist, ein einfaches +1 wird einer 5-stündigen Bearbeitungszeit von der Frage nach verfügbarer Software bis zur Veröffentlichung eines benutzerdefinierten Open-Source-Plugins, das das Problem löst, nicht gerecht! Das ist es, was diese Seite großartig machen wird.
Getestet & funktioniert!! 1.000.000 Dank. Ich wünschte, ich könnte einige meiner SO-Punkte als Prämie dafür geben. Wenn ich hier ein paar Punkte mehr bekomme, werde ich zurückkommen und dies belohnen. Bitte erinnern Sie mich, wenn ich es vergesse. Und noch einmal vielen Dank!
Dies hat mich dazu inspiriert, einige eigene Plugins zu programmieren (was ich eigentlich hätte tun sollen)
@Mawg Sehr gerne geschehen :) Vielen Dank für dein nettes Feedback.
Hey @Mawg ... sieht so aus, als hättest du das "Kopfgeld", das du in deinem ersten Kommentar hier jemals versprochen hast, immer noch nicht gewährt. Was hindert Sie heutzutage bei etwa 2,5.000 Wiederholungen daran, 500 Punkte zu vergeben, über eine solche Prämie und einen Grund wie „eine der Antworten ist ausstehend“? Übrigens, wie wäre es mit einer Zeilen-Cmd-Schnittstelle wie dieser: c .here .there Bierfisch (unter Verwendung der Zeilenbezeichnungen '.here' und '.there' auch, ich hoffe, Sie verstehen, was ich meine ...).
@Mawg - hier ist eine weitere Erinnerung, jetzt, wo Sie mehr als das Dreifache der Wiederholung haben, die durch die letzte Erinnerung vor zwei Jahren impliziert wurde. ;)
Tut mir leid, dass ich es vergessen habe. Ich habe jetzt ein Kopfgeld von 100 Punkten gepostet, kann es aber nicht für 23 Stunden vergeben, also vergiss nicht, mich daran zu erinnern, wenn ich das auch vergesse :-)
Das war zu verlockend, um keine konkurrierende Antwort zu posten ...
Ich werde Ihnen die SPFLite-Antwort vergeben. Danke 1.000.000
Ausgezeichnet. Danke für die Erinnerungen, Leute :-) Ich glaube, ich erinnere mich, SPFlite vor etwa 10 Jahren gesehen zu haben, aber damals war es nicht kostenlos. Es ist natürlich genau das, wonach ich gesucht habe.
@JohnY Schau dir an, was passiert ist :-) Ich habe eine Ablehnung bekommen und eine andere Antwort ein Kopfgeld. Mit letzterem könnte ich leben, aber ersteres ist schade.
@ComFreek - Du hast Recht, es tut mir leid, dass es so gelaufen ist. Ich habe Ihre Ablehnung zumindest (mehr als) annulliert. Wie dies hätte ablaufen sollen , ist, dass Sie das Kopfgeld erhalten haben (um Ihre Bemühungen zu belohnen, ganz zu schweigen davon, sein Wort zu halten) und die SPFLite-Antwort akzeptiert wurde (was widerspiegelt, dass es tatsächlich die "am besten passende" Antwort auf die Frage ist).

Der vimEditor 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 Ctrlv​​bewegen 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“).

Rep-Dialog

+1 Danke. uvviewsoft.com/synwrite sieht gut aus. Da ich NotePad++ bereits verwende, werde ich es wahrscheinlich weiterhin verwenden, aber andere möchten vielleicht SynWrite in Betracht ziehen