видаліть рядки, які відповідають шаблону із заданого рядка до кінця файлу


10

Якщо у мене є файл із великою кількістю коментарів, і я хочу видалити всі коментарі з, скажімо, рядка 3 до кінця файлу, який найкращий спосіб це зробити?

Я застряг, оскільки те, що я спробував вперше, здається, не зовсім те, що я хочу:

:3,$/^#/d

Замість того, щоб шукати шаблон і видаляти рядки з ним у діапазоні від 3 до кінця файла, він видаляє всі рядки від 3 до через рядок, що відповідає шаблону, а потім зупиняється.

Отже, як застосувати колишню команду до діапазону рядків. У цьому випадку це до кінця файлу, але чи було б інакше, якби я це робив до позначки або між рядками 10 та 20 чи іншими діапазонами?

Відповіді:


15

Використовуйте для цього :globalкоманду:

:3,$g/^#/d

Ви можете застосувати його до рядків, що не відповідають шаблону:

:3,$g!/^#/d

Ви можете використовувати механізм повного діапазону з ним (див. :help :range):

:.,/#define/+3g/^#/d

І ви можете використовувати його з будь-якою командою:

:3,$g/^#/s/foo/bar/g

Це одна з найпотужніших команд Vim, будь ласка, дивіться :help :globalдеталі.


Ви також можете використовувати :3,$v/foo/dдля рядків, які не відповідають шаблону. :h vglobal
vappolinario
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.