Mit VIM zum nächsten Block in einer Patch-Datei navigieren

900
Sridhar Ratnakumar

Einige von uns sind mit patchFehlern vertraut, wie "Hunk #11 FAILED at 958."zum Beispiel: Gibt es einen Befehl in VIM, mit dem ich zum 11. Hunk gehen kann, ohne ihn manuell zählen zu müssen? Sogar eine Verknüpfung zum nächsten Patch wäre nützlich.

Gibt es irgendwelche?

1

2 Antworten auf die Frage

2
Jawa

Eine einfache Methode zum Wechseln zwischen Patch-Hunks besteht darin, zuerst nach dem Anfang des Patch-Markers zu suchen

  • in einem einheitlichen diff

    /^@@Enter

  • in einem Kontext diff

    /^\*\Enter

und dann zum nächsten Stück weitergehen, indem Sie die Suche mit wiederholen

n(oder mehrere Kerle gleichzeitig 3n)

Um sich von Hunks rückwärts zu bewegen, verwenden Sie

N(oder zB 4N)


Wenn Sie all Hunk Zahlen wissen müssen Sie, um zu sehen, zum Beispiel des 11 - ten und 24 - ten großen Stück, können Sie zunächst die Menge Präfixsuche verwenden Hugh vorgeschlagen: 11/^@@Enterund nach dem Umzug in 24 th großen Stück entweder immer von oben Berechnung: gg24noder Direkter Vorlauf: 13n(Hunk Nr. 24 ist 13 Hunks vom 11. Platz voraus ).

Vielen Dank an Hugh und Jawa für den Suchtrick `@@`. Und "gg24n" ist für mich etwas Neues, was die Antwort auf die Frage komplettiert. Sridhar Ratnakumar vor 14 Jahren 0
1
Hugh Allen

Ausgehend von der ersten Zeile einer Patchdatei im Befehlsmodus * können Sie zum 11. Block gehen: -

  • in einem Kontextunterschied:

    11/^\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*Enter

  • in einem einheitlichen diff:

    11/^@@Enter

* und im Befehlsmodus meine ich das, was die Hilfe als Normalmodus bezeichnet - also nicht im Einfügemodus und nicht im Befehlszeilenmodus ( :).