On Sun, Feb 08, 2004 at 04:18:10PM +0100, Thorsten Haude wrote:
Warum? In der Regel stehen ?nderungen an zwei unterschiedlich Zeilen nicht in einem so engen Zusammenhang wie ?nderungen innerhalb einer Zeile. Im Gegenteil: In Deinem Beispiel kann man die beiden ?nderungen nur gleichzeitig zur?cknehmen, obwohl man vielleicht nur einen Teil nicht haben will.
Einer der Standardfaelle ist aber auch, dass man z.B. einen Variablennamen aendert und das an zwei anderen Stellen im scope nachziehen muss. Dann ist es sinnvoll, dass das entweder insgesamt oder gar nicht rueckgaengig gemacht wird. Deinen Fall kann man ja trotzdem abdecken. Es gibt Leute, die vertauschen per xmodmap Esc und Capslock :-)
Nat?rlich, aber ich versuche auch nicht etwas zu verteidigen, was so offensichtlich Nutzerunfreundlich ist wie die Unterscheidung zwischen Befehls- und Eingabemodus. Das macht wirklich nur dann Sinn, wenn garnichts anderes mehr geht.
Ich finde es beim alten klassischen vi, der nur einen undo-level hatte, auch uebertrieben. Damals war das ja historisch gekommen, weil es manchmal Terminals gab, die kaum Funktionstasten etc. hatten bzw. alles in 7bit-ascii passen musste, was zwischen user und vi ablief. Ich finde aber auch, dass die Trennung beim vim zu mehr Moeglichkeiten gefuehrt hat. Ich bin froh, dass ich fuer viele Dinge einfache Tastendruckbefehle habe, anstatt immer Kombinationen von Ctrl, Alt, F-Tasten etc. zu benutzen. Vielleicht ist es einfach eine Geschmacksfrage.
Wie es gehen soll ist allerdings nicht so einfach zu beschreiben. Es geht halt, man tippt, ?ndert, bewegt den Cursor und benutzt danach die Undo-Funktion. Wo siehst Du das Problem?
Die meisten Editoren isolieren dann diejenigen Eingaben, die durch Cursortasten etc. voneinander separiert sind und versuchen "irgendwie" zu erkennen, was eine atomare Aenderung ist. Meistens ist die Systematik aber nicht ganz eindeutig, waehrend sie beim vim klar definiert ist. Bei Textpad z.B. wird dann das Ersetzen eines Buchstabens durch Delete+neuerBuchstabe zu zwei Aenderungen, waehrend in vim das mit r+neuerBuchstabe eine klarer definierte atomare Aenderung ist. Oder wenn ich im vim mit C den Rest der Zeile ersetze, sind das in anderen Editoren auch mehrere undo-Schritte. Vielleicht bin aber ja auch nur ich so gepolt, und andere kommen mit dem Verhalten von nicht-vim-Editoren besser zurecht. Ich habe bei vim mehr das Gefuehl, zu wissen, was ich gerade am Text mache und gemacht habe, als bei joe, emacs, pico, textpad und ultraedit.
(?brigens ist der Begriff 'Transaktion' in der Informatik schon belegt, das sollte man nicht verwischen.)
Ich sehe nicht, wieso der Begriff hier zumindest als Analogie falsch sein soll. Gut, die durability fehlt, aber es geht ja darum, ob eine Aenderung ganz oder gar nicht stattfinden soll. Ich bin im uebrigen mit Datenbanken ganz gut vertraut und kann Dir auch jederzeit einen Vortrag halten, wie die ACID-Eigenschaften von Transaktionen etwa bei Oracle implementiert sind. Wenn Du der Ansicht bist, dass der Begriff hier von mir falsch verwendet wird, dann sag bitte auch warum. Gruss Maik