2012-05-17 3 views

답변

13

모든 것을 탈출하지 마십시오. :.,+30s/&/&&/g이 저에게 효과적입니다.

+12

분명히하기 위해 : 이것은 & 메타 문자가 아닙니다. 패턴에서 ('&'가 이스케이프되지 않았거나 매우 매직 모드가 활성화되어 있지 않으면) 대체 문자열에서 '&'는'\ 0 '과 동일합니다. 일치하는 부분 문자열 전체입니다. "전체 일치 된 하위 문자열"은 앰퍼샌드 자체이므로이 솔루션이 작동합니다. 'magic'옵션이 꺼져 있으면 ": s"를 포함한 여러 명령에서 "대체 된 패턴이 전체 일치 패턴을 나타냅니다"라는 사실이 거짓임을 유의하십시오. – ZyX

10

정규식의 첫 번째 부분에서 앰퍼샌드를 이스케이프 할 필요가 없습니다. 두 번째 (대체) 부분에만 특별한 의미가 있습니다.

"\ &"이라고하는 패턴을 찾고 "\ & \ &"과 같은 패턴으로 바꿉니다.

대체 할 수있는 간단한 방법은 다음과 같습니다 _&&_&가 가지고있는 이스케이프 할 : 또한 당신이 예를 들어 & 위치를 변경해야하는 경우 것이 유용 발언

:.,+30s/&/&&/g 
1

될 수 있습니다 대체 표현식의 대체 명령문에서만 :

:.,+30s/ &/\& /g 
     ^
관련 문제