seth_not@home: vim: meta-undo/-redo

gudn tach!

ich habe gerade ein feature gefunden, das ich sooo geil finde, dass ich davon berichten moechte. einige hier benutzen ja auch den vim und kennen die funktion vielleicht noch nicht.

u ist ein undo
5u macht 5 undos
ctrl+r in das entsprechende undo-undo

schoen, das kennt jeder und hat jeder texteditor.
aber es kann trotzdem noch probleme geben, aber das wird evtl. am bespiel klarer:

man tippt
  a (fuer den insert-modus)
  schweine (um "schweine" zu schreiben)
  <esc> (um in den normalen modus zu kommen)
  (dann faellt einem ein, dass man noch was ergaenzen moechte)
  a
  kotze (also steht da "schweinekotze")
  <esc>
  (dann faellt einem ein, dass man gar nicht "schweinekotze" schreiben wollte und drueckt, um das rueckgaengig zu machen)
  u (jetzt steht da wieder "schweine")
  a
  sau (also "schweinesau")
  <esc>
  (dann faellt einem ein, dass man eigentlich "schweinekotzelied" schreiben wollte, tja aber durch das undo ist das eben geschrieben "kotze" unwiderruflich weg... dachte ich bisher immer. man kann es aber trotzdem sich wieder holen und zwar mit g-)
  g- (et voila "schweinekotze")
  A
  lied
  <esc>
fertig.

mit g- und g+ kann man _alle_ zustaende des textes durchlaufen, auch die, die man via u und ctrl+r hergestellt hat. ich kenne keinen anderen editor, der das auch kann (ok, emacs kenne ich nicht, aber der kann das sicherlich auch).

noch ein wenig verrueckter: mit ":earlier [zeitangabe, z.b. 5m]" kann man textzustaende mit einer zeitangabe wiederherstellen, z.b. vor den zustand vor 5 minuten.

und wenn jetzt jemand denkt "sowas brauch ich doch eh nedd!", dann ist mir das egal. mir hat so eine funktion wie g- schon oefters gefehlt. man kann damit quasi in die vergangenheit, dort die zukunft veraendern, und jene dann einem nicht gefaellt, wieder in die alte zukunft zurueckkehren.

mann, ist vim geil!

prost
seth

  1. Hallo seth.

    mann, ist vim geil!

    ACK! Vielen Dank für den Tipp.

    Einen schönen Donnerstag noch.

    Gruß, Mathias

    --
    ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
    debian/rules
  2. gudn tach!

    mit g- und g+ kann man _alle_ zustaende des textes durchlaufen, auch die, die man via u und ctrl+r hergestellt hat. ich kenne keinen anderen editor, der das auch kann (ok, emacs kenne ich nicht, aber der kann das sicherlich auch).

    aehm, unde/redo ist nicht soo ungewöhnlich. Und ja, kann das auch :)
    Da heisst das 'Killring'

    mfg

    1. gudn tach!

      mit g- und g+ kann man _alle_ zustaende des textes durchlaufen, auch die, die man via u und ctrl+r hergestellt hat. ich kenne keinen anderen editor, der das auch kann (ok, emacs kenne ich nicht, aber der kann das sicherlich auch).

      aehm, unde/redo ist nicht soo ungewöhnlich.

      doch, auf dieser ebene schon. die editoren, die ich sonst bisher unter windows verwendete, hatten alle nur die gewoehnlichen undo-/redo-funktionen, die ja heutzutage fast jede software hat.

      das besondere ist, dass man _nach_ einer aenderung, die _nach_ ein paar undos erfolgte, den zustand vor den undos wiederherstellen kann.
      oder koennen das mittlerweile auch viele andere texteditoren? die letzten versionen von notepad (haha), proton, phase5, crimson edit, unired, ultraedit, nedit, texniccenter und ein paar andere, die ich noch benutzte, konnten das afaik jedenfalls nicht.

      Und ja, kann das auch :)
      Da heisst das 'Killring'

      ich hatte mich heute nachmittag kurz mit einem emacser unterhalten. der hatte sich nur bisher noch nicht so sehr mit undo-funktionen befasst. er war jedenfalls der meinung, dass das normale emacs-undo wohl vergleichbar waere mit dem g- von vim, er aber nicht aus dem kopf wisse, wie man ein gewoehnliches undo hinbekomme.
      das mit dem von dir erwaehnten kill ring (mit space) ist wohl sowas aehnliches.

      prost
      seth