Diskussion:Ed (Texteditor)

Letzter Kommentar: vor 1 Jahr von Meillo in Abschnitt Überarbeiten

Überarbeiten

Bearbeiten

Wie die Editoren ex und vi, aber im Unterschied zum Plan-9-Editor sam, arbeitet ed zeilenorientiert:

Ist der vi nicht seitenorientiert? --Thornard, Diskussion, 09:58, 5. Mai 2008 (CEST)Beantworten

Stimmt genau, vi ist seitenorientiert, und zwar von Anfang an. --Benji 12:01, 5. Mai 2008 (CEST)Beantworten
Nein, stimmt nicht; vi ist visuell, arbeitet aber dennoch zeilenorientiert (m.E. gibt es keine seitenorientierten Editoren; das wären dann Textverarbeitungsprogramme. Bei Druckern kann man sagen, daß Tintenstrahl- und Nadeldrucker zeilenorientiert, Laserdrucker hingegen seitenorientiert arbeiten). Ich habe mal (in Vim) folgendes probiert:
  • eine Reihe von Zeilen erzeugt, die aus lauter Kleinbuchstaben „a“ bestehen
  • den Cursor in die Mitte einer Zeile gesetzt und mit v eine Markierung erzeugt, die sich über mehrere Zeilen erstreckt, die erste und letzte Zeile aber nicht vollständig enthält
  • Bei aktiver Markierung den Befehl „s,a,b,g“ ausgeführt („ersetze in der Markierung alle Vorkommen von a durch b“)
  • Ergebnis: alle Vorkommen von a in den von der Markierung betroffenen Zeilen werden ersetzt, auch außerhalb der Markierung.
vi hat zwar im Gegensatz zu Vim keinen visuellen Modus; es ließe sich aber sicher ein Beispiel finden, das die zeilenweise Arbeitsweise auch für ihn belegt.
vi hat die Zeilenorientierung von ex geerbt; er hat ja auch einen ex-Modus. Die Änderung vom 15. Mai 2008, 12:51 Uhr führt also bzgl. vi einen Fehler ein und sollte insofern teilweise revertiert werden. --Tobias 21:51, 29. Okt. 2010 (CEST)Beantworten

Noch ein Beispiel, das auch im (Ur-) vi funktionieren sollte. Text:

aaaaaaaaaaaaaaaaa
aa Anfang aaaaaaa
aaaaaaaaaaaaaaaaa
aa Ende aaaaaaaaa
aaaaaaaaaaaaaaaaa

Kommandos:

1
/Anfang/,/Ende/s,a,b,

Ergebnis:

aaaaaaaaaaaaaaaaa
ba Anfang aaaaaaa
baaaaaaaaaaaaaaaa
ba Ende aaaaaaaaa
aaaaaaaaaaaaaaaaa

Das „a“ am Anfang der zweiten Zeile wird also ersetzt, obwohl es eigentlich nicht zwischen „Anfang“ und „Ende“ liegt – wohl aber auf den durch die Suchbegriffe angegebenen Zeilen. Das ist kein Bug, sondern ein (dokumentiertes) Feature! Ich ändere also mal den Text bzgl. vi zurück; da ich sam nicht selbst kenne, lasse ich diesen Teil mal raus. --Tobias 22:22, 29. Okt. 2010 (CEST)Beantworten

"m.E. gibt es keine seitenorientierten Editoren; das wären dann Textverarbeitungsprogramme." Sorry, das ist s e h r problematisch. Oder bestenfalls historisch akzeptabel aus Uraltzeiten, als man in manchen Textverarbeitungen noch Steuerzeichen angezeigt bekam. Ein Textverarbeitungsprogramm unterscheidet sich durch einen Editor doch nach dem üblichen Verständnis heutzutage mindestens dadurch, daß es unterschiedliche Schriften darstellen kann et cetera (weswegen man ja auch LaTeX nicht als TVP, sondern als Satzprogramm betrachtet). Auch Emacs ist kein Textverarbeitungsprogramm, sondern ein Editor. Letztendlich ist es die Benutzung, die TVP von Editoren unterscheidet. 79.214.42.229 20:25, 28. Dez. 2010 (CET)Beantworten
Das Ersetzungsbeispiel finde ich gut, da es verdeutlicht, dass die Verarbeitung zeilenweise ist. Die Adressierung ist zeilenweise. Das s-Kommando wird also auf diejenigen Zeilen angewendet, die auf den Bereich zutreffen. Im ed ist "s" das einzige Kommando, mit dem man Teile innerhalb einer Zeile aendern kann. Alle anderen Kommandos tun etwas mit ganzen Zeilen. Der vi dagegen besteht aus zwei Editoren: dem ex, der wie der ed zeilenweise arbeitet, und dem grafischen Frontend vi, das Editierbefehle fuer alle moeglichen Einheiten hat. So arbeitet das "d" Kommando im ex zeilenweise. Das "d" Kommando im vi ist flexibel und kann auf verschiedene Bewegungsbefehle und Einheiten angewendet werden. Das "x" Kommando im vi wiederum arbeitet ausschliesslich zeichenweise. Seitenweise ist im vi aber nur die Darstellung. Es gibt keine Editierkommandos, die seitenweise arbeiten wuerden (ausser dass man bei den flexiblen Kommandos auch seitenweise Bewegungsanweisungen nutzen kann, aber die angezeigte Bildschirmseite ist keine Einheit, die man irgendwie nutzen oder ansprechen kann). --Meillo (Diskussion) 12:36, 30. Mai 2023 (CEST)Beantworten