명령어모드에서 실행해야한다. 현재 모드가 뭔지 모르겠으면 일단 <esc>키를 두번 치고 시작한다.
/pattern pattern에 해당되는 문자를 찾아 커서를 이동한다.
:s/pattern1/pattern2 현재줄에서 pattern1에 해당되는 문자열을 찾아 pattern2로 치환해 준다. (처음 만나는 pettern1만, 전체에 대해서 적용할려면 g를 붙인다. 예) :s/pattern1/pattern2/g)
:%s/pattern1/pattern2 현재 파일내에서 pattern1에 해당되는 문자열을 찾아 pattern2로 치환해 준다.
:1-5s/pattern1/pattern2 현재 파일의 1~5줄 내에서 pattern1에 해당되는 문자열을 찾아 pattern2로 치환해 준다.
* <>로 둘러싸여있는거 다 없애기
:%s/\(<.\{-}>\)//g
*: 문서에
: fsfd[sgsdgsgsg]sfdfdf
: 저런 식으로 여럿 있습니다.
: 저기서 [ 와 ] 사이의 모든 글을 지우고 싶습니다.
: 즉 위의 글을 fsfd[]sfdfdf 로 만들고 싶은데요.
: 잘 안되네요.
: 제 생각엔 :%s;[.*];[];g
: 저렇게 하면 될 것 같았는데 안돼네요.
: 아시는분 좀 갈챠주시길...
: 그럼 좋은 주말 보내셈~~
:%s/\[.*\]/\[\]/g
:%s/\[[^\]]*\]/\[\]/g
:help regular
* ct(
(를 만나기 전까지 치환한다.
(대신 다른것을 써도 된다.
예)cta
a를 만나기 전까지 치환한다.
c2ta
두번째 a를 만나기 전까지 치환한다.
* 두번째 스페이스까지만 남기고 뒷줄은 없애는것
:%s/^\(\(.\{-} \)\{2}\).*/\1/g
*
: cuit:x28
: xyzhero:x30ix
: xero:x18_lk
를 다음과 같이 바꿀려면, 즉 숫자뒤의 문자들을 없애는것
: cuit:x28
: xyzhero:x30
: xero:x18
%s/\D*$
* 1234,김형달
에서 맨첨의 ,를 ;로 바꾸기
:%s/,/;
*여러 빈줄을 한 빈줄로 바꿈
:g/^$/.,/./-j
* 한글만 없애는것
* 숫자만 빼고 나머지는 다지우기
:%s/\D//g
* 맨앞의 #만 없애는것
:5,$s/\(^.*\)\(#\)/\1
맨처음의 것(뭐가 되든지)을 찾고 그다음 #을 찾고 맨처음의 것만 남긴다.
*
copy d:\0423\100\na029w d:\0424\na029w
copy d:\0423\100\na030w d:\0424\na030w
에서 맨마지막 \다음을 가져오는것
:%s/.*\\//
* 한줄을 ""로 감싸는것
:%s/.*/"&"/g
* 여러개의 공백을 한개의 공백으로 바꾸기
:%s/ \+/ /g
"부분을 없애고
:%s/"//g
줄맨앞의 공백도 없애준다.
:%s/^\s*//g
줄맨뒤의 공백도 없애준다.
:%s/\s*$
* 화일전체를 대문자로 바꾸는것
:%s/.*/\U&/g
&는 패턴찾기에서 나온 전부를 가리킨다.
* 유니코드로 찾기
/[\u숫자]
'Computer > vi에디터' 카테고리의 다른 글
커서 이동, 입력, 삭제 (0) | 2014.01.04 |
---|