vim hat auch eine diff-Funktion um 2 Dateien miteinander zu vergleichen und sich die Unterschiede zwischen ihnen anzeigen zu lassen. Dazu ruft man vim mit folgendem Befehl auf:
vimdiff <datei1> <datei2>
Dadurch startet vim im Diffmodus, öffnet die Dateien in einem vertikalen Splitscreen und faltet alle Stellen der beiden Dateien, die identisch sind, so dass nur die Unterschiede zu sehen sind.
Wenn man bereits eine Datei geladen hat und diese mit einer anderen vergleichen möchte, so kann man dies mit dem Kommando
:diffsplit <datei>
erreichen.
Mittels ]c kann man nun zum ersten (bzw. nächsten) Unterschied springen. Mit [c springt man zum vorherigen Unterscheid.
Mittels do (diff obtain) an einer der unterschiedlichen Textstellen übernimmt die Datei, die den Fokus besitzt die entsprechende Stelle der anderen Datei. Mit dp (diff put) wird der aktuelle Unterschied der Datei mit dem Fokus auf die andere Datei übertragen.
So kann man nun durch die Unterschiede springen und jeweils die eine oder andere Datei anpassen, bis beide Dateien gleich sind.
Übrigens kann man sich die Dateien zusätzlich in einem anderen Tab ohne Diffmodus anzeigen lassen.
Ich habe mir auch ein Mapping definiert, so dass ich mit Strg+m vorwärts durch die Unterschiede springen kann. Dazu schreibt man folgende Zeile in die ~/.vimrc
map <C-m> ]c
Weitere Hilfe zum Diffmodus in vim gibt es in der Hilfe, die mittels :h diff aufgerufen werden kann.
Folgende Beiträge könnten Dich auch interessieren:
Schlagworte: diff, Unterschiede, vergleichen, Vim, vimdiff








Du bist genau 4 Tage zu spät
ich war am Montag im Zug (ohne Internet) und hätte diese Funktion gut gebrauchen können. Naja jetzt kenn ich sie. Danke für den Beitrag!
Hätte ich das gewusst, hätte ich den Beitrag natürlich früher geschrieben, also nächstes mal vorher bescheid sagen
[...] vergleichen Das Blog zInformatik zeigt mit einem sauberen und gut verständlichen Beitrag, wie mit dem Editor VIM Dateien verglichen werden können. Es ist schon erstaunlich, was dieser [...]
Antwort von zimon: “…also nächstes mal vorher bescheid sagen”
Also nutze ich das nette Angebot von zimon und stelle meine Frage (bzw. mein Anliegen): Wie bekomme ich im HEADER den aktuellen USER und HOSTNAME mit ausgedruckt, beispielsweise so:
Peter@Workstation1. Habe es schon mit dem Einlesen von $USER und $HOSTNAME versucht, mache aber irgend etwas falsch in der Syntax (glaube ich jedenfalls)
Hallo,
also wenn ich das richtig verstanden hast, möchtest du die statusline ändern (:h statusline), damit du sehen kannst, welche Datei auf welchem Rechner liegt.
Also mit einem Kommando wie
kannst Du Dir auf jeden Fall den Hostnamen anzeigen lassen. Den username könntest Du möglicherweise durch den Aufruf eines externen Kommandos (z.B. whoami) heraus bekommen.
Viele Grüße,
zimon
Sorry, aber habe mich nicht ganz korrekt ausgedrückt. Mir geht es um den Header in einer Hardcopy (:hardcopy). Ich möcht auf dem Ausdruck oben sehen, von wem und von welchem Arbeitsplatz (Workstation) dieser oder jener Ausdruck stammt. Habe bislang folgendes in der .vimrc:
set pheader=%F
set pheader+=%=%20(%{strftime(‘%e\.%b\ %Y\ %H:%M\’)}\ %)
set pheader+=%=%10(%N/\%{line(‘$’)/108+(line(‘$’)%108!=0)}$
Alles aus dem Internet zusammegeklaubt, aber es fehlen mir nur noch o.g. Angaben. Am Besten noch vor der Pfadangabe.