Інший підхід у залежності від вашого випадку використання буде використовувати vimgrep і його результати в QuickFix . Ви можете зробити наступне:
:vimgrep pattern %здійснить пошук у поточному файлі та переведе вас до першого результату пошуку. Що ще більш важливо, він також розміщує результати в "списку швидких виправлень".
:copenпотім відкриє список швидких виправлень в окремому вікні швидкого виправлення. Отже, у вас буде окреме вікно з усіма рядками вашого останнього вімгрепу. Потім у вікні швидкого виправлення можна натиснути Enter або двічі клацнути на рядку, щоб перейти до відповідного рядка у вихідному файлі.
:colderповернеться до старих списків швидких виправлень (старіші результати vimgrep). І :cnewerпереходить до нових результатів пошуку.
Зверніть увагу, що список :makeшвидких виправлень також оновлюється під час запуску (саме тому його називають швидким виправленням для виправлення помилок). Через це також є альтернатива списку швидких виправлень, яка називається "список місцезнаходжень". Для того, щоб використовувати його замість того, щоб використовувати :lvimgrep, а потім використовувати команди л-приставкою , а не команди з-приставкою - :lopen, :lolder, :lnewer.
Звичайно, ви можете зробити набагато більше. Докладніше див :help quickfix.
PS, Ви сказали, що не хочете підходу, який видаляє рядки, а потім скасовує їх. Але оскільки ви позначили g/ERRORяк відповідь, я думав, що зазначу швидкий і брудний спосіб g!/ERROR/d. Потім ви можете легко скасувати це за допомогою u. Також FYI, ви можете зробити, :set hlsearchщоб виділити шаблони, що відповідають :gкомандам.