
이 문서는 vim에서의 Regular Expression을 익히기 위한 실습을 다룸:
다음의 문서를 반드시 읽어보고 나서 수행해볼것.
2026.02.18 - [utils] - Vim Regular Expression
Vim Regular Expression
Vim Regular ExpressionVim에서의 RE(Regular Expression) 은 Python이나 C에서의 RE 와 조금 차이가 있다.참고로 Vim의 RE는 backslash가 무지 많이 요구되기 때문에,일반적으로 very magic 모드(\v)를 사용하는 게 정신
ds31x.tistory.com
https://dsaint31.tistory.com/473
[Linux] vi (or vim) 사용법 정리
vi (or vim) 사용법 정리 더보기관련자료.https://ds31x.tistory.com/174 [CE] Text file: Text 파일이란?"text file" 은사람과 컴퓨터가 읽을 수 있고 처리할 수 있도록 encoding 된 characters 로 이루어진electric text lines
dsaint31.tistory.com
0. 실습용 텍스트 준비
아래 내용으로 새 text 파일 생성:
Name: John Smith
Age: 42
Height: 180px
Weight: 72kg
Name: Alice Brown
Age: 35
Height: 165px
Weight: 55kg
# comment line
temp = 120ms
temp = 300ms
foo bar baz
image.jpg
image.png
image.gif
John John
1. 연속 공백 정리
foo bar baz
위의 여러 스페이스로 된 공백을 하나의 스페이스로 통일
foo bar baz
1.1 실행
:%s/\v\s+/ /g
\s+: 공백 1개 이상g: 줄 전체
2. 줄 끝 공백 제거
:%s/\v\s+$//
3. 빈 줄 삭제
:g/^\s*$/d
- 빈 줄 모두 제거.
4. 숫자 + 단위에서 단위만 제거
다음의 변환을 원함:
180px -> 180
165px -> 165
4.1 실행
:%s/\v\d+\zspx//
- 숫자는 매칭 조건
\zs이후(px)만 실제 치환
5. ms → s 단위 변경
capture group 을 이용함.
다음의 변환을 원함:
120ms -> 120s
5.1 실행
:%s/\v(\d+)ms/\1s/g
6. 이름 순서 바꾸기
다음의 변환을 원함:
John Smith -> Smith John
6.1 실행
:%s/\v(\w+)\s+(\w+)/\2 \1/
7. 주석 제거 (Python 스타일)
:%s/\v#.*$//
8. 특정 문자열 포함 줄 삭제
다음의 명령어는 Age: 가 포함된 라인을 삭제.
:g/Age:/d
- global command 를 이용.
:g/패턴/명령어로 구성됨.- 패턴을 포함한 라인에
- 명령어가 수행됨: 이 예제에선
delete가 이루어짐.
:v/패턴/명령어는 반대로 동작하는 line filtering임- 패턴을 포함하지 않는 라인에
- 명령어가 수햄됨.
9. 특정 문자열 없는 줄 삭제
이미지 파일만 남기기:
:v/\v\.(jpg|png|gif)$/d
10. 정확한 단어만 치환
다음과 같이 John을 Jack으로 치환
John John -> Jack Jack
10.1 실행
:%s/\v<John>/Jack/g
< >: word boundary
11. 중복 단어 제거
다음의 중복된 경우, 하나만 남김.
John John -> John
11.1 실행
:%s/\v<(\w+)>\s+\1/\1/g
주의할 점
실제 작업을 할 때는 사용할 pattern으로 검색을 수행하고 나서 해야 함.
/\vpattern
검색에서 원하는 것들이 제대로 선택되는지를 확인하고 치환을 수행.
:%s/\vpattern/replace/g
'utils' 카테고리의 다른 글
| vim 9.2 릴리즈 (0) | 2026.02.18 |
|---|---|
| vscode - coding shortcuts (0) | 2026.02.18 |
| Vim Regular Expression (0) | 2026.02.18 |
| [vim] buffer 와 window (0) | 2026.01.24 |
| johngrib의 vimwiki + github.io 를 설치하기 (0) | 2026.01.14 |