Переход к следующему блоку в файле патча с помощью VIM

807
Sridhar Ratnakumar

Некоторые из нас знакомы с patchошибками, такими как "Hunk #11 FAILED at 958."- есть ли в VIM команда, которая позволяет мне перейти, скажем, на 11-й кусок ... без необходимости вручную считать его? Даже ярлык для перехода к следующему патчу будет полезен.

Есть ли?

1

2 ответа на вопрос

2
Jawa

Простой способ перемещения между кусками патча - это сначала поиск маркера патча.

  • в унифицированном дифференциале

    /^@@Enter

  • в контексте различий

    /^\*\Enter

а затем перейти к следующему блоку, повторив поиск с

n(или несколько кусков за раз, например 3n)

Для перемещения назад с помощью гуннов используйте

N(или например 4N)


Если вы знаете, все номера ханка вам нужно, чтобы увидеть, например, на 11 - й и 24 - й ломоть, вы можете сначала воспользоваться поиском количество префиксов Хью предложил: 11/^@@Enterи после этого перейти на 24 - й ломоть либо путем вычисления всегда сверху: gg24nили прямое продвижение вперед: 13n(ломоть № 24 - на 13 шагов впереди 11- го ).

Спасибо и Хью, и Джаве за трюк с поиском `@@`. И `gg24n` - это что-то новое для меня, и это завершает ответ на вопрос. Sridhar Ratnakumar 14 лет назад 0
1
Hugh Allen

Начиная с первой строки файла патча в командном режиме *, вы можете перейти к 11-му блоку: -

  • в контексте diff:

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

  • в унифицированном дифференциале:

    11/^@@Enter

* и под командным режимом я имею в виду то, что справка называет нормальным режимом, то есть не режим вставки и не режим командной строки ( :)