vi 에서 텍스트 여러줄 replace 하는 방법은?

seldom의 이미지

abc
def

와 같이 여러줄을 한꺼번에 다른 것으로 교체하려고 하는데 가능한가요? (윈도우즈 gvim 을 쓰고 있습니다)

keizie의 이미지

%s/abc\ndef/uwv\nxyz/g

처럼 하면 될 겁니다.

kimes의 이미지

vi에서.. sed에서 쓰일수있는 패턴문자열 모두 쓸수있는건가요?

랜덤여신의 이미지

kimes wrote:
vi에서.. sed에서 쓰일수있는 패턴문자열 모두 쓸수있는건가요?

약간은 다르지만 대부분의 정규표현식을 쓸 수 있습니다. '오리지널' 정규표현식에 더 가깝게 쓰고 싶으시면, vim 에서 패턴을 입력할 때 앞에 \v 를 붙이세요. 예를 들어, \v[a-zA-Z0-9_]+ 이런식으로...

DwYoon의 이미지

kz wrote:
%s/abc\ndef/uwv\nxyz/g

처럼 하면 될 겁니다.

%s/abc\ndef/uwv^Mxyz/g

(^M == ctrl_v + enter)

이렇게 해야 되는걸로 쓰고 있었는데, 저렇게도 돼는 게 맞나요. 계속 왜 찾는 쪽의 줄바꿈과 바꾸는 쪽의 줄바꿈이 왜 다를까 궁금해 하고 있습니다.

moc.soolge.nooynowead

송효진의 이미지

왜그런지는 모르겠지만 내부에서 \r 을 개행문자로 사용하나봅니다.
\n 은 검색시는 매치가 되는데 바꾸기쪽에서는 \r 로 해야 되더군요.
^M 까지는 안해도 됩니다.