Подтвердить что ты не робот

Как прыгать между шаблонами при использовании: vimgrep (список Quickfix)?

Я новичок в vim и все еще изучаю некоторые его особенности. У меня проблема с vimgrep. Я могу найти шаблон, подобный этому vimgrep /define/ **, чтобы найти и открыть следующий файл, содержащий define. Но я еще не мог узнать, как перейти к следующему файлу/строке, которая соответствует моему шаблону. Любые указатели?

4b9b3361

Ответ 1

Полезные команды для списка quickfix (скобки вокруг опускаемой части команд):

  • :cn[ext] и :cp[revious] перейти к следующей и предыдущей записи
  • :cnf[ile] и :cpf[ile] перейти к следующему и предыдущему файлу (если список quickfix не отсортирован по файлу, вы можете напишите функцию, которая getqflist(), выполняет сортировку, а затем setqflist()
  • :cr[ewind] и :cla[st] перейти к началу или концу списка быстрого удаления
  • :col[der] и :cnew[er] будут проходить через исторические списки быстрого исправления.

Излишне говорить, что есть много других команд, и вы можете обнаружить их в :help quickfix.

Лично у меня есть следующие карты:

      | ø      | SHIFT   | CTRL
------+--------+---------+---------
<F11> | :cprev | :cpfile | :colder
<F12> | :cnext | :cnfile | :cnewer

Конечно, если вы используете список местоположений вместо списка quickfix (:lvimgrep), то существуют те же самые команды, просто замените начальный c на l и на него.

Vim 8 Дополнения:

  • :cdo: выполнить команду для всех записей списка быстрого удаления. Например, :vim /foo/ *.cpp *.h *.hpp может последовать :cdo s/pattern/replacement/g
  • :cfdo: выполните команду all files in quickfix list. Например, фотографии :vim /foo/ *.cpp *.h *.hpp может последовать :cfdo %s/2ndpattern/2ndreplacement/g

Ответ 2

Чтобы перейти к следующему появлению patter, вы можете использовать :cnext. Вы можете перейти в обратном направлении с помощью :cnext.

Я не уверен в возможности пропустить все вхождения до следующего файла автоматически, но вы можете открыть окно quickfix с помощью :cwindow, чтобы просмотреть список совпадений и перейти к этим совпадениям, нажав Enter на запись в списке.