vim 문자열 주위에서 찾아 바꾸기

vim 문자열 주위에서 찾아 바꾸기

예를 들어 VIM에서 텍스트가 있는 경우

http://a.com
http://b.com

모든 줄(전체 줄)을 찾아 앞뒤에 나오는 줄로 바꾸는 것이 가능합니까? 예를 들면 다음과 같습니다.

<a href="http://a.com">http://a.com</a>
<a href="http://b.com">http://b.com</a>

각 줄마다 텍스트가 반복됩니다. href에 대해 한 번, 텍스트에 대해 한 번.

답변1

:%s:.*:<a href="&">&</a>:

ed/sed/perl과 같습니다...

덜 비슷 ex하지만 더 유사한 또 다른 vim접근 방식은 다음과 같습니다. 한 줄에 대해 한 번 수행하는 방법을 알고 있으면 매크로로 기록한 다음 거기에서 매크로를 실행합니다 :%normal @m.m

유사(일반 모드): qmS<a href="<Ctrl-R>""><Ctrl-R>"</a><Esc>q매크로를 기록합니다.

답변2

왜 파이프를 사용하고 있습니까?

:%s/.*/\<a href=\"&\"\>&\<\/a\>/g

(모든 명령 문자열을 \로 표시)

관련 정보