Как оказалось, любезно предоставлено @dsstorefile1, это была память!
Для всех, кто это видит, максимальный размер памяти равен , а не выделенной памяти. Это штучка с возможностью горячей замены. Используйте первый вариант.
Я идиот.
:%s/.*\(https:\)/\1/
:
переводит вас в режим ex
.
%
— это быстрый способ сказать 1,$
, что означает для строки с номером 1 до конца
s/
— это substitute
с использованием /
в качестве разделителя.
.*\(https:\)
— это все, за чем следует https:
, с учетом https:
\1
— запомненный текст.
Вероятно, это не лучший подход, но он работает.
:%s/^.*https/https/g
Заменяет все от начала строки до https
на https
.
Другие ответы до сих пор показывают общую замену регулярным выражением, которое либо фиксирует, либо дублирует префикс https
. Однако, поскольку вы спрашиваете о Vim, вы можете избежать этого, завершив матч досрочно с помощью изящного\ze
атома:
:%s/.*\zehttps://
Это :substitute
во всех строках(:%
)все(.*
)от начала строки до (последней (! )совпадение с)https:
(использовать не -жадное сопоставление (.\{-}
), если в строке может быть несколько вхождений ), но заканчивая совпадение непосредственно перед этим (\ze
), заменяя его ничем(//
).
Уже упомянутый в комментариях, :global
находит все строки с URL, удобно устанавливает шаблон поиска, а затем удаляет от позиции курсора до первого совпадения(dn
):
:global/http/normal! dn
0d/https<CR>qqqqqjdn@qq@q
Удаляет совпадение текущей строки вручную (0d/https<CR>
), затем очищает регистрq
(qqq
)и начинает запись рекурсивного макроса (qq
), который переходит к следующей строке (j
), удаляет до совпадения (dn
), штрихует рекурсия (@q
),заканчивает запись(q
)и, наконец, запускает макрос (@q
), который работает до тех пор, пока совпадений больше не будет.