Как перейти между шаблонами при использовании: vimgrep (список Quickfix)? - PullRequest
53 голосов
/ 24 октября 2011

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

Ответы [ 2 ]

82 голосов
/ 24 октября 2011

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

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

Само собой разумеется, есть много других команд, и вы можете найти их в :help quickfix.

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

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

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

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

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

Для перехода к следующему появлению скороговорки вы можете использовать :cnext.Вы можете вернуться в обратном порядке с помощью :cNext.

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

...