Vimでグローバル置換を使用して、すべて削除します最大https
。
The website is https://website.com
The website is https://website.com
The website is https://website.com
https://website.com
https://website.com
https://website.com
_:%s/.*\(https:\)/\1/
_
_:
_は、ex
モードに入ります。
_%
_は_1,$
_と言う簡単な方法です。つまり、行番号1から最後までです。
_s/
_はsubstitute
で、区切り文字として_/
_を使用しています。
.*\(https:\)
は、httpsを思い出して_https:
_が後に続くものです。
_\1
_は記憶されたテキストです。
おそらく最良のアプローチではありませんが、それは機能します。
:%s/^.*https/https/g
行頭からhttps
までのすべてをhttps
に置き換えます。
これまでの他の回答は、https
接頭辞をキャプチャまたは複製する正規表現による一般的な置換を示しています。ただし、Vimについて質問しているので、気の利いた \ze
アトム:
:%s/.*\zehttps://
この :substitute
sすべての行(:%
)すべて(.*
)行の先頭から(最後の(!)一致)までhttps:
(貪欲でないマッチングを使用する(.\{-}
)1行に複数のオカレンスが存在する可能性がある場合)、ただしその直前に一致を終了します(\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
)一致がなくなるまで実行されるようにします。