1

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

Есть ли?

2 ответа2

2

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

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

    /^@@ Enter

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

    /^\*\{15} Enter

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

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

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

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


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

1

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

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

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

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

    11/^@@ Enter

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .