2009-08-27 24 views
19

Kann VIM seit dem letzten Speichern die geänderten Zeilen markieren? Ich weiß, dass es mit Versionskontrolle gemacht werden kann, aber kann es ohne gemacht werden? Ich möchte kein Versionskontrollsystem verwenden, weil der Code, an dem ich arbeite, das nicht hat.Vim - geänderte Zeilen markieren

Ich denke, dass UltraEdit so etwas hat.

+0

Es klingt, als ob Sie versuchen, vim zu einem Versionskontrollsystem zu machen, also versuchen Sie tatsächlich, ein VCS hinzuzufügen. Warum nicht ein Werkzeug für diese Aufgabe verwenden? –

+2

Obwohl ich eine direktere Antwort auf Ihre Frage gegeben habe, muss ich William Purpell zustimmen, dass es für die Verwendung eines VCS viel zu sagen gibt, selbst wenn es nur eines ist, das lokal im Arbeitsordner von das Projekt (wie Basar, Mercurial oder Git). Es gibt keinen Server, der eingerichtet werden kann, und es bietet Ihnen eine unschätzbare Rückgängig-Funktion, die über die Möglichkeiten eines Editors hinausgeht. Nur meine Meinung, obwohl ... – DrAl

+1

Ich habe Svn für die meisten meiner anderen Projekte, und ich weiß, wie wertvoll es ist, aber nicht diese besondere. Und ich möchte kein Repository für einige Dateien einrichten. Die Antwort von AI ist nur wollen ich brauchte. – Ayman

Antwort

17

Von here:

if !exists(":DiffOrig") 
    command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis 
      \ | wincmd p | diffthis 
endif 

Dann tun nur :DiffOriget voila!

:help :DiffOrig 
+0

Verwenden Sie ': diffoff', um dies wieder auszuschalten. Es gibt bereits einige Diskussionen zu ': DiffOrig' auf Stackoverflow, z. [hier] (http://stackoverflow.com/questions/6426154/taking-a-quick-look-at-difforig-then-switching-back). – glts

2

wenn Sie mit CVS, Git oder Subversion für die Quelldateien dann dieses Plugin Skript wird tun, was Sie wollen: VIM svndiff

wäre es wahrscheinlich nicht allzu schwierig sein, um es von einem diff an der Arbeit von eine temporäre Datei (falls diese Option noch nicht vorhanden ist).

0

Sie benötigen eine temporäre Datei zum Vergleich, und ich bin mir nicht sicher, ob Vim eine hat (es hat eine SWP-Datei, aber ich weiß nicht, wie es ausgenutzt werden könnte).

Wie dem auch sei, eine (skurrile) Möglichkeit könnte sein, das generische SCMdiff zu verwenden und ein Befehlszeilenskript zu schreiben, das einen Unterschied zwischen der aktuellen Datei und einer .tmp-Version davon ausführt. Sie sollten auch einen Befehl zuordnen, der die .tmp-Datei für die aktuelle Version speichert und möglicherweise bei jedem Speichern automatisch aufruft.

6

Von vim wiki

Type ": Änderungen" Linien anzuzeigen, in dem Änderungen aufgetreten sind.

Verwenden Sie "g;" und "g", um zu den geänderten Zeilen zu springen

Verwandte Themen