Другой подход, в зависимости от вашего варианта использования, будет использовать vimgrep и его результаты в quickfix . Вы можете сделать следующее:
:vimgrep pattern %
будет искать текущий файл и приведет вас к первому результату поиска. Более того, он также помещает результаты в «список быстрых исправлений».
:copen
откроет список быстрых исправлений в отдельном окне быстрых исправлений. Таким образом, у вас будет отдельное окно со всеми строками из вашего последнего vimgrep. Внутри окна быстрого доступа вы можете нажать Enter или дважды щелкнуть строку, чтобы перейти к соответствующей строке в исходном файле.
:colder
позволит вам вернуться к старым спискам быстрых исправлений (более старые результаты vimgrep). И :cnewer
переходит к новым результатам поиска.
Обратите внимание, что список быстрых исправлений также обновляется при запуске :make
(именно поэтому он называется быстрым исправлением для исправления ошибок). Из-за этого также есть альтернатива списку быстрых исправлений, называемая «список местоположений». Чтобы использовать его вместо этого, вы используете :lvimgrep
, а затем используете команды с префиксом l вместо команд с префиксом c - :lopen
, :lolder
, :lnewer
.
Конечно, вы можете сделать гораздо больше. См. :help quickfix
для получения дополнительной информации.
PS, Вы сказали, что не хотите подход, который удаляет строки, а затем отменяет их. Но так как вы отметили g/ERROR
как ответ, я подумал, что я бы указал на быстрый и грязный способ сделать g!/ERROR/d
. Затем вы можете легко отменить его, используя u
. Также, к вашему сведению, вы можете сделать :set hlsearch
, чтобы выделить шаблоны, соответствующие командам :g
.