텍스트 편집에서 특정 문자열을 일괄로 변경해야 할 때가 많다. 이럴 때 윈도우 메모장이나 노트패드++에선 ctrl + h 단축키로 수행할 수 있다면 리눅스 vim에선
:%s/[검색할문자열]/[치환할문자열]/g
형태로 사용한다. 이게 처음보면 뭔 의미인가 싶어서 눈에 잘 안 익을 수 있는데 s가 치환이라는 뜻을 가진 substitute의 약자라는 점을 기억하면 좀 더 쉽게 기억에 남는다.
예를 들어 아래처럼 텍스트 안에 있는 vim이라는 문자열을 모두 vi로 바꾸고 싶으면
:%s/vim/vi/g
라고 입력하면 된다.
그럼 이렇게 14개의 단어가 변경됐고 10줄에 영향을 미쳤다는 식의 문구가 결과로 출력된다.
만약 변경하려는 문자열에 / 가 포함되면 / 대신 # 를 구분자로 쓰면 된다.
예를 들어, /data/app 이라는 문자열을 /data/new_app 으로 바꾸려면
:%s#/data/app#/data/new_app#g
이렇게 쓴다.