1

Änderungen einer Datei im vi anzeigen lassen

Frage von MyEternalSmile MyEternalSmile

Guten Tag! Ist es möglich die zuletzt gemachten Änderungen an einer Datei, die man zB über den vi gemacht hat anzeigen zu lassen? Bspw. ich ahbe eine Textdatei in der "hallo" steht und füge nun das wort "welt" hinzu. Nun möchte ich dass es mir anzeigt, dass welt hinzugefügt wurde. Ist dies möglich und wenn ja wie? Ich kenne nur "diff" aber hiermit kann man ja nur 2 Dateien miteinander vergleichen. Vielen Dank! MES

Fragen zu gleichen Themen finden

Antworten (4)

  • 1
    Antwort von Tux31 Tux31

    Benutze doch einfach den Mignight Commander . Einfacher kann man doch gar nicht mit Daten umgehen

  • 1
    Antwort von user1074 user1074

    Definitiv NEIN. Du meinst sicherlich so was wie die Änderungsverfolgung in Word. Da der vi die Datei aber quasi 1:1 ohne versteckte Hintergrundinformationen abspeichert, kannst du die Datei nicht einfach so mit einer früheren Version vergleichen.

    Im vi gibt es keine Änderungsverfolgung!

    Trotzdem lässt sich eben mit paar "Tricks" ein diff erzeugen, z.B. wenn du in jede Version noch die Zeit rein speicherst, oder ein svn-System benutzt.

    Was gehen würde ist, wenn du die Datei über svn o.ä. abspeicherst, dann hat svn eine Änderungsverfolgung. Das ganze ist aber im Grunde nichts andres als ein diff, nur das svn nicht 2 Dateien sondern eben gerade den "diff" abspeichert.

  • 0
    RatgeberHelden Antwort von HerzVonHessen HerzVonHessen

    Hallo MyEternalSmile,

    • Ob das im vi selbst geht wüsste ich jetzt nicht.
    • Ich kann mir aber vorstellen das man mit weiteren Konsolen-Programmen über eine Verkettung dieses umsetzen könnte.

    Denn diff kann weit mehr als "nur" Wörter zu vergleichen wenn man es richtig einsetzt:

    man diff
    

    gibt dazu mehr Aufschluss.

    In Verbindung mit echo -e "\e[[0-9][0-9]m, hier ein Beispiel:

    echo -e "\e[31mDie Schrift ist rot"
    echo -e "\e[0mDies wieder normal"
    

    und dazu noch find, awk und grep bleiben da kaum Wünsche offen.

    • man echo
    • man find
    • man awk
    • man grep

    Als fertiges Programm fällt mit da allenfalls CVS/Cervisia ein: http://www.cvshome.org/ mit dem man ähnliches realisieren könnte.

    lieben Gruß aus Zuhaus

  • 0
    Antwort von guenterhalt guenterhalt

    ein Werkzeug, dass genau dieses neue Wort anzeigt, kenne ich auch nicht. Es ist auch nicht ganz so einfach, dafür einen allgemeingültigen Algorithmus zu finden, denn bereits ein Leerzeichen in einer der Dateien würde einen Byte-Vergleich ab dieser Stelle negativ ausfallen lassen.

    So macht es das Programm cmp . Es stoppt bei der ersten gefunden Nichtübereinstimmung und nennt die Zeilen- und die Byte-Nummer. Diese Stelle kann man dann natürlich in beiden Dateien ansehen.

    Es wird wohl, solle man weitere Differenzen suchen wollen, notwendig sein, die Dateien an dieser Stelle in Übereinstimmung zu bringen und cmp erneut zu starten.

    Mit joe als Editor kann man 2 (und mehr) Dateien "gleichzeitig" bearbeiten/anzeigen und so auch manuell vergleichen.

Diese Frage

Verwandte Fragen

Noch nicht den richtigen Rat gefunden?

Einfach und schnell viele hilfreiche Ratschläge von Deutschlands aktivster Ratgeber-Community erhalten!

Einfach und schnell einen Tipp erstellen und Ihren guten Rat mit anderen teilen!

Einfach und schnell ein Video hochladen und anschaulichen Rat an alle geben!

Die unter gutefrage.net angebotenen Dienste und Ratgeber Inhalte werden nicht geprüft. Die Richtigkeit der Inhalte wird nicht gewährleistet. Rechtliche Hinweise finden Sie hier.