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
答え1
:%s/.*\(https:\)/\1/
:
モードに入りますex
。
%
11,$
行目から最後まで
s/
区切り記号として使用されますsubstitute
。/
.*\(https:\)
以下はhttps:
httpsを覚えておいてください。
\1
記憶に残る文だ。
答え2
おそらく最善のアプローチではありませんが、うまくいきます。
:%s/^.*https/https/g
行の先頭からhttps
すべてを交換してくださいhttps
。
答え3
これまでの他の答えは、プレフィックスをキャプチャまたはコピーする正規表現を使用して一般的な置換を示しましたhttps
。しかし、Vimについてお問い合わせいただいたので、良い方法で試合を早く終了すると、この問題を回避できます。\ze
原子:
:%s/.*\zehttps://
これは:substitute
、すべての行()、:%
行の先頭から最後(!)の一致()までのすべての項目で機能します(欲張りではない一致の使用(1行に複数回表示される場合))。ただし、最後の一致は just on ( ) 以前は空 () に置き換えます。.*
https:
.\{-}
\ze
//
短いスマート代替
コメントですでに述べたように、URLですべての行を検索し、カーソル位置から最初の一致():global
を削除して検索パターンを設定するのは簡単です。dn
:global/http/normal! dn
あいまいな代替
0d/https<CR>qqqqqjdn@qq@q
現在の行(0d/https<CR>
)の一致を手動で削除し、レジスタq
(qqq
)をクリアしてロギングを開始します。再帰マクロ(qq
)次の行に移動(j
)、一致する項目があるまで削除(dn
)、再帰開始(@q
)、記録終了(q
)、最後にマクロをトリガー(@q
)して、一致する項目がなくなるまで実行されます。
答え4
この特別な場合、リテラル空白文字はURLに含まれていないため、各行に置換を適用して最後のスペースの前にあるすべての項目を削除できます。
:% s/.* //