vi에서 치환에 대한 몇가지 질문입니다.
글쓴이: sarama / 작성시간: 일, 2005/08/21 - 4:34오후
vi로 편집할 텍스트 화일에 다음과 같은 줄이 여러줄 존재합니다.
%aa=(one=>"G", three=>"Gly"); . . %aa=(one=>"H", three=>"His");
이 줄을
$aa="G"; . . $aa="H";
로 바꾸려고 합니다.
질문 1
펄에서는 매칭이 되는 특정 패턴을()로 묶어서 $1,$2 등으로 사용할 수 있는데 vim에서는 사용할 수 없나요? 여기서 첫 줄의 H를 ()로 묶어서 치환할 문에 $1로 넣어서 변환하면 쉬울것 같아서요.
질문 2
보통 윈도에서 사용하는 워드프로세서(한글, 워드)등은 각각 바꿀때 정말로 바꿀지 아니면 건너뛸지를 물어보잖아요. 이런것이 vi에서 가능할지 모르겠습니다. 여러줄을 한번에 바꾸면서 하나씩 확인하면서 작업하고 싶어서요.
질문 3
vi에서 사용하는 정규표현식과 펄의 정규표현식사이의 차이점을 알고싶습니다. 제가 위 코드를 바꾸는 정규표현식을 펄의 그것을 응용해서 짰는데 안되는군요, 내가 못짜서 그런건지 아니면 원래 차이가 나서 그런 것인지 모르겠습니다.
Forums:
질문 1)http://wiki.kldp.org/wiki.php/Doc
질문 1)
http://wiki.kldp.org/wiki.php/DocbookSgml/Vim-KLDP#EDIT-14
Chaos to Cosmos,
Chaos to Chaos,
Cosmos to Cosmos,
Cosmos to Chaos.
:%s/%aa=(one=>"[b]\([/b].*[b]\)[/b]",
:%s/%aa=(one=>"\(.*\)",.*$/$aa="\1"/gc
1. \(pattern\)이 펄의 ()에 해당합니다.
2. 마지막에 c가 confirm으로 확인이 필요할 때 사용.
3. 거의 비슷하며, 대부분 notation차이라고 합니다.
:help perl-patterns
댓글 달기