앞으로

앞으로

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.

%1 번째 1,$줄부터 끝까지

s/구분 기호로 사용됩니다 substitute./

.*\(https:\)다음 내용은 https:https를 기억하세요.

\1기억에 남는 글이다.

답변2

아마도 최선의 접근 방식은 아니지만 작동합니다.

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

줄의 시작 부분부터 https모든 것을 교체하십시오 https.

답변3

지금까지 다른 답변은 접두사를 캡처하거나 복사하는 정규식을 사용하여 일반적인 대체를 보여주었습니다 https. 하지만 Vim에 대해 문의하신 것이므로 좋은 방법으로 경기를 일찍 종료하면 이러한 문제를 피할 수 있습니다.\ze원자:

:%s/.*\zehttps://

이것은 :substitute모든 줄( ), :%줄의 시작부터 마지막(!) 일치( )까지의 모든 항목에서 작동합니다(탐욕적이지 않은 일치 사용(한 줄에 두 번 이상 나타날 수 있는 경우)). 그러나 끝 일치 is 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/.* //

관련 정보