Попытка выяснить, как удалить из vim все, кроме шаблона, используя возможности регулярных выражений.
В частности, я пытаюсь удалить все, кроме строки "United States", а также строки, следующей сразу за ней (из списка зеркал Arch Linux).
Так что это ...
## Austria
Server = http://mirror.easyname.at/archlinux/$repo/os/$arch
## United States
Server = http://mirror.cs.pitt.edu/archlinux/$repo/os/$arch
## Thailand
Server = http://mirror2.totbb.net/archlinux/$repo/os/$arch
Должен трансформироваться в это ... (и продолжать это для каждого экземпляра линии Соединенных Штатов)
## United States
Server = http://mirror.cs.pitt.edu/archlinux/$repo/os/$arch
Строка, которую я пытался использовать, чтобы завершить это:
:v/## United States\n\_.\{-}\_$/d
Если я правильно понимаю,: v выбирает все, кроме шаблона. Шаблон, который я пытаюсь передать, это строка Соединенных Штатов плюс следующая строка (\ n) и все, что после этого, до конца строки (\ _. \ {-} \ _ $), а затем удалите весь этот мусор (/d).
Однако при выполнении этой строки я получаю только строки с Соединенными Штатами. Примерно так:
## United States
## United States
## United States
...
Что мне делать, чтобы сохранить строку после строки США?