검색
vim에서 검색을 할 때에는 입력 모드가 아닌 일반모드에서 /
키를 입력해 검색 대화 창을 띄우고 검색할 문자를 입력해 엔터키를 입력 하면 해당 문자열을 찾아 커서를 그 위치로 이동합니다.
그 상태에서 다음 검색결과로 넘어가려면 그 상태에서 n
키를 누르고, 이전 검색결과는 N
(Shift 키를 함께 입력)를 입력해 이동 할 수 있습니다.
찾아 바꾸기
단순 변경
:substitute
커맨드는 text pattern을 찾아 text string으로 치환합니다. 많은 옵션이 있지만 보통은 아래의 내용이 필요합니다.
:s/foo/bar/g
현재 라인의
foo
를 찾아bar
로 변경
:%s/foo/bar/g
모든 foo를 찾아 bar로 한번에 변경
/
를 구분자로 사용 할 수 있지만, 바꾸고자 하는 문자열에 이미 포함되었을 경우에는 따로 escape 할 필요 없이 @,#,! 혹은 | 와 ? 등등 다른 구분자를 사용할 수 있습니다.
아래의 예제는 http://localhost:8080/api
를 모두 ${API_URI}
로 변경합니다.
문자열에 /
이 포함 되어있기 때문에 @
를 대신 구분자로 사용 하였습니다.
:%s@http://localhost:8080/api@${API_URI}@g
변경전 확인
마지막 구분자 뒤의 g는 confirmation 없이 변경하는 것 이며, c 옵션을 준다면 매번 매칭되는 문자열마다 변경할지를 한번 더 확인 합니다.
:%s/foo/bar/gc
모든
foo
를bar
로 변경 하지만, 처음에 정말 바꿀지 물어봅니다.
:%s/foo/bar/gci
i 옵션은 모든 foo를 변경하지만, 대소문자를 구분하지 않습니다(ignorecase).
vim에서는 기본설정으로
:set noignorecase
되어 있기 때문에 대소문자 구분을 하지 않으려면 i 옵션을 붙여 주어야 합니다.
:%s/foo/bar/gcI
대문자 I 옵션을 주면 case sensitive가 되어 대소문자를 구분 합니다.
대소문자 구분을 원하지 않아
:set ignorecase
옵션을 준 경우에는 대소문자 구분을 위해 필요합니다.
'Development > Develop Tools' 카테고리의 다른 글
DBeaver) CSV 파일을 데이터베이스로 importing 하기 (0) | 2022.01.12 |
---|---|
웹 브라우저 애드온 추천: Momentum (0) | 2022.01.08 |
intelliJ IDEA module에서 템플릿 못찾는 문제 해결 (0) | 2021.12.02 |
Eclipse) 자바스크립트 에러표시 제거 (0) | 2021.12.02 |
Brackets) Unable to access the extension registry. Please try again later. 에러 해결 (0) | 2021.11.17 |