나도 개발자/Linux

vi 문자열 치환 & 검색

MCman 2013. 1. 24. 22:25

문자열 치환

문서를 쓰다보면 변수명이든 함수명이든 바꾸고 싶은 경우가 생긴다. 이럴 때 이 명령어를 안다면 정말 유용할 것이다. 문자열을 치환하는 방법을 설명하겠다.

vi 편집 모드에서 아래 명령어를 친다.

:<첫째줄>,<마지막줄>s/<기존바꿀문자>/<새로바꿀문자>/<옵션>

옵션은 크게 세종류로 나누어진다.

1. g (global의 약자) : 한 줄에 패턴이 여러번 나올 경우 사용하면 좋다. 이 옵션을 넣지 않으면 각 줄마다 처음 매칭되는 패턴 하나만 치환하게 된다.

2. i (ignore case의 약자) : 대소문자를 구분하지 않게 하는 옵션이다. 바꾸고 싶은 값의 대소문자를 정확히 구분하지 않고 바꿀 때 유용하다.

3. c (confirm의 약자) : 검색된 모든 패턴에 대해 확인하는 옵션이다.

<사용 예>

:1,5s/asdf/qwer/gc        : 1번줄부터 5번줄까지에 있는 asdf를 qwer로 바꾸어라. 바꾸기 전에 확인은 한다.

:%s/asdf/qwer/gc         : 문서 전체에서 asdf를 qwer로 바꾸어라. 바꾸기 전에 확인은 한다.

:%s/AdsF/qwer/ic         : 문서 전체에서 대소문자 구분 않고 asdf를 qwer로 바꾸어라. 바꾸기 전에 확인은 한다.

 

문자열 검색

vi로 편집을 할 때 특정 단어나 문자를 찾고 싶을 때가 있다. 간단하게 검색 방법에 대해 설명해보겠다.

다음과 같은 명령어로 문자열을 검색한다.

/<찾을 문자열>

찾고 나서 다음 단어로 넘어갈 경우엔 <n>키를 누르면 다음 단어로 넘어가게 된다. 반대로 위로 찾은 문자열을 가고 싶다면 <Shift> + <n> 를 누르면 된다.

<사용 예>

/asdf                             : 문서 전체에서 asdf를 검색한다. 검색된 asdf는 하이라이트로 문자열이 바뀐다.

검색 후 하이라이트 없애기

검색을 하면 하이라이트로 찾은 문자열이 눈 앞에 서성이게 된다. 이 하이라이트를 지우는 명령어이다.

:noh                                : 하이라이트를 없애는 명령어이다.

 

커서 이동

문서의 맨 처음으로 가기 위해서 열심히 페이지업 키를 누르고 있는가? 간단한 명령어로 처음으로 이동할 수 있다.

gg                                   : 맨 처음 첫줄로 커서가 이동하게 된다.

다른 방법으로 커서를 이동시켜볼 수 있다.

:<숫자>                            : 보고 싶은 라인 숫자를 왼쪽 표현식에 넣는다면 그 줄로 넘어가게 된다.