Используйте подстановку, чтобы удалить все до точки в строке

Как оказалось, любезно предоставлено @dsstorefile1, это была память!

Для всех, кто это видит, максимальный размер памяти равен , а не выделенной памяти. Это штучка с возможностью горячей замены. Используйте первый вариант.

Я идиот.

2
29.04.2020, 14:13
3 ответа
:%s/.*\(https:\)/\1/

:переводит вас в режим ex.

%— это быстрый способ сказать 1,$, что означает для строки с номером 1 до конца

s/— это substituteс использованием /в качестве разделителя.

.*\(https:\)— это все, за чем следует https:, с учетом https:

\1— запомненный текст.

4
19.03.2021, 02:19

Вероятно, это не лучший подход, но он работает.

:%s/^.*https/https/g

Заменяет все от начала строки до httpsна https.

3
19.03.2021, 02:19

Другие ответы до сих пор показывают общую замену регулярным выражением, которое либо фиксирует, либо дублирует префикс 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), который работает до тех пор, пока совпадений больше не будет.

2
19.03.2021, 02:19

Теги

Похожие вопросы