본문 바로가기
목차
utils

연습 - Vim Regular Expression

by ds31x 2026. 2. 18.
728x90
반응형

이 문서는 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. 정확한 단어만 치환

다음과 같이 JohnJack으로 치환

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

 

728x90

'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