vi에서 특정문자를 여러개 바꾸기를 진행하다보니 예전에 썼었던 찾아바꾸기가 기억나지 않아 검색하고 있어서 이번에 정리를 좀 해보려고 한다. (LINUX 카테고리 잡아 놓고 vi만 쓰고 있다... )
우선 가장 기본적인 vi에서 검색은
그냥
/검색문자
하면 된다.
예를 들면
fgh를 검색하고 싶다 하면
/fgh
하면 fgh가 모두 하일라잇 된다.
위에서 아래로 계속찾기 하려면 n 을 누르면 되고
아래에서 위로 다시찾기 하려면 N 을 누르면 된다.
반대로 찾기를 하기 위해서는
?fgh
하면 fgh가 모두 하일라잇 되며
/fgh와 반대로
위에서 아래로 계속찾기 하려면 N 을 누르면 되고
아래에서 위로 다시찾기 하려면 n 을 누르면 된다.
그럼 찾아바꾸기는 어떻게 하는 것인가??
조금 복잡하지만 일단 예문부터 보자
:%s/fgh/FGH
이렇게하면 전체에서 fgh가 FGH로 변하게 된다.
그럼 내가 원하는 부분만 바꾸려면?
:%s/fgh/FGH/c
c 옵션을 붙이므로써 y를 누르면 바뀌고, n를 누르면 다음으로 건너뛰고, a를 누르면 모두 바뀐다.
잠깐 정리하면 찾아바꾸기는
:(시작줄),(끝줄)s/(찾을패턴)/(바꾸는스트링)/옵션
이 되시겠다.
여러가지 예문을 써보면
:1,5s/a/b - 1번째 줄부터 5번째 줄까지 a를 b로 바꾼다.
:.,.+10s/a/b - 현재 커서위치 줄부터 현재커서위치줄 + 10줄 까지 a를 b로 바꾼다.
이런 식으로 사용할 수 있는 것이다.
이를 응용하면 정말 무궁무진해 지는데 ... 일단 여기까지만 설명 하도록 한다.
응용은 여러분드리 알아서~
마지막으로 옵션을 정리하면
g : global - 한 줄에 패턴이 여러번 나오면 모두 바꿈. 지정 안하면 줄에 첫번째 패턴만 변경
i : ignore case - 대소문자 구분 하지 않음
c : confirm - 검색된 모든 문자열에 대해서 마꿀지 말지 물어봄
No comments :
Post a Comment