2012-10-19 2 views
5

나는 몇 줄 아래처럼이정력 교체 문제

aaa=$aaa 
bbb=$bbb 
ccc=$ccc 
ddd=$ddd 

그래서 난 정력에 그것을 할 다음 명령을 사용하지만 오류

:s/\(\^*\)/\1=\$\1/ 

있고 난 여기 \1을 실현 두 번 사용할 수 없습니다, 나는이 어떻게해야합니까?

답변

4

뒤로 참조 \1은 원하는만큼 사용할 수 있지만 다른 문제가 있습니다. 귀하의 정규식처럼 보일 것입니다 :

:%s/^\(.*\)/\1=\$\1/ 

설명 : % 모든 라인에 대체 정력을 말한다; ^은 줄의 시작 부분에 대한 표시로 정규 표현식의 첫 번째 문자 여야하며 이스케이프해서는 안됩니다. .*은 "임의의 문자"를 의미합니다. 그러나 원래 식 \(\^*\)은 리터럴 문자 ^ (없음 포함)의 반복 횟수를 찾습니다.

+0

위대한 문제가 해결되었습니다. :) – user1726366

4

줄의 전체 내용과 일치하는 경우 \(...\)을 통해 ^ 앵커 또는 캡처가 필요하지 않습니다. 교체 할 때 \0 또는 더 짧게 &을 사용할 수 있습니다. (또한 $을 탈출 할 필요가 없습니다.)

:%s/.*/&=$&