2009-05-15 9 views
7

Ich versuche zu lernen, vimdiff gut zu verwenden. Derzeit habe ich herausgefunden, wie man einen Diff-Block von einem Puffer zu einem anderen bekommt (unter Verwendung von do), aber was ich jetzt tun möchte, ist einfach eine (oder einige) Zeile eines Blocks in den anderen Puffer zu bekommen.Verwenden von diffget in vimdiff

Die vimdiff Dokumentation sagt:

:[range]diffget 

aber ich kann nicht verstehen, wie man einen richtigen Bereich Parameter haben, einfach die Linie, die ich von einem Puffer zum anderen bin auf kopieren.

Antwort

9

können Sie

:.,. 

als Bereich von aktuellen Zeile zur aktuellen Zeile verwenden.

Gemäß dem Dokument können Sie den Bereich weglassen und dann wird die aktuelle Zeile oder Zeile oben verwendet.

+3

Ohne Bereich kopieren Sie den gesamten Diff-Block, nicht nur die aktuelle Zeile. – claf

+3

Sie brauchen nicht ', .', nur' .' ​​sollte ausreichen. – ZyX

0

Wie Mykola sagte,:.,. wird "die aktuelle Zeile" als Bereich angeben.

Ich hatte eine sehr große Datei, die jede Zeile inspiziert und vielleicht geändert hatte, so dass jedes Mal "..,. Diffput" zu tippen zu mühsam war. Ich nahm ein Makro:

qq:.,.diffput[ENTER]q 

, die ein Makro erstellt (unter dem „q“ Taste gespeichert), um eine einzelne Zeile vom linken Puffer in den rechten Puffer „put“. Nun, diese Aktion zu wiederholen, alles, was ich tun muß, ist der Typ „@q“

1

Ich finde es ein bisschen einfacher, die aktuelle Zeile mit V auszuwählen und dann zu oder dp zu tun. Dies hat den gleichen Effekt wie die Auswahl der Wut mit :.,. aber es ist einfacher zu tippen! Sie können auch problemlos benachbarte Zeilen mit j oder k hinzufügen.