vi, vim 문자열 찾기 / 바꾸기

2017.09.21 07:00



vi, vim 문자열 찾기 바꾸기




vi 문자열 찾기



vi, vim에서 문자열을 검색하기 위해서는 일반모드(vi를 실행한 상태, 입력모드나 명령행 모드라면 ESC로 빠져나온 상태)에서 "/"를 입력하고 찾을 문자열을 입력한다. 



색상표시가 가능한 터미널에서는 찾는 문자열을 표시해준다. 




단어를 찾은 다음


n으로 다음 단어, N으로 이전 단어로 이동할 수 있다.



/로 여러 개의 단어를 검색했다면 

/입력 후 j, k로 이전 검색 문자열들을 불러올 수 있다.





커서 위치에 있는 단어 찾기


/ 문자열로 찾지 않고 화면에 찾는 단어가 있다면 *표를 누르면 화면 맨 아래쪽 명령줄에 해당 단어가 

정규표현식으로 나타나고 그 단어와 같은 단어에 모두 색상으로 표시된다. 





이렇게 찾은 단어도 n, N으로 앞, 뒤에 있는 문자열로 옮겨갈 수 있다. 






하이라이트된 표시 없애기



vi, vim이 찾은 단어를 색으로 표시해주는건 좋은데, 키보드로 위치를 옮겨도 없어지지 않는다. 


하이라이트 표시를 없애려면 명령모드에서 :nohl이라고 입력하면 하이라이트 부분이 없어지는데 이것보다는 다시 /를 입력하고 검색어로 /lakjdlfkajld같은 엉뚱한 문자열을 찾아서 하이라이트 없애는게 더 효율적(?)이다. 





vi 문자열 치환



vi, vim에서 문자열을 교체하는 명령어 구조는 다음과 같다. 



: 문자열 바꿀 시작 행, 끝 행 s/ 찾을 패턴 / 바꿀 문자열 / 옵션




하나씩 설명해보자 


1) 문자열 바꾸기를 시작할 행, 끝 행

1,10 - 첫줄부터 10번째 행 안에서 바꾸기

1,$ - 첫줄부터 문서 끝($)까지 바꾸기

.,20 - 현재 행부터 20번째 행 안에서 바꾸기

% - 문서 전체(%)에서 바꾸기



2) s/

s는 구분자를 지정하는 역할을 한다.

구분자는 일반적으로 슬래쉬를 사용하지만 ,(쉼표)나 @같은 다른 기호를 사용하는 것도 가능하다. 




만약 바꿔야할 문자열에 /(슬래쉬)가 포함된다면 \/처럼 슬래쉬 앞에 이스케이프 문자(\)를 넣어 표현하거나 구분자를 /가 아닌 다른 문자로 적어야 한다.



3) 찾을 패턴

찾을 패턴은 단순한 문자열이 아닌 정규표현식이 가능하다. 


4) 바꿀 문자열

바꿔넣을 문자열을 지정해준다. 


5) 옵션

g - 범위 내에 해당 문자열 바꾸기한다

i - 대소문자 무시

c - 문자열 바꾸기 전 "확인" 과정을 거친다



옵션에 c를 사용했을 때 나타나는 선택은 다음과 같다. 



y - yes. 바꾸기

n - no. 안 바꾸기

a - all. 전부 바꾸기

q - quit. 문자열 바꾸기 취소

l - line. 현재 행에서만 작업하고 바꾸기 끝.

^E - 아래로 한 행 보여주기

^Y - 위로 한 행 보여주기




또루아빠 Linux, Unix , , , , , , , ,