본문으로 건너뛰기

RegEx for Vim

Find

  • /<word>: 커서가 위치한 곳 이후에 존재하는 단어를 찾습니다.
  • ?<word>: 커서가 위치한 곳 이전에 존재하는 단어를 찾습니다.
  • n: 이전 단어를 찾은 경우 그 이전으로, 다음 단어를 찾은 경우 그 다음으로 단어를 찾습니다.
  • N: n과 반대 방향으로 다음 단어를 찾습니다.
  • *: 커서가 위치한 곳의 단어를 / 명령어로 찾습니다.
  • #: 커서가 위치한 곳의 단어를 ? 명령어로 찾습니다.

#*은 키보드에서 5, 6을 기준으로 대칭인 자리에 있습니다.

Substitute

:[<lineOption>]s/<before>/<after>/[<option>] : before에서 after로 찾아 바꿉니다.

  • [<lineOption>]
    • line option이 없는 경우 커서가 위치한 줄에 적용됩니다.
    • start_num,end_num: 주어진 번호의 줄을 포함한 그 사이 줄
    • `<,`>: Visual 모드에서 블록된 영역의 줄
    • .,$: 현재 위치에서 끝까지
    • .,+n: 현재 위치에서 n번째 다음 줄까지
  • [<option>]
    • g: 줄 전체에서 찾아 바꿉니다. 기본은 줄에서 찾은 첫번째만 바꾸는 것입니다.(global)
    • c: 찾은 후 바꿀 것인지 묻습니다.(confirmation)
    • i: 대소문자를 무시하고 찾습니다. (ignoring case)

RegEx

  • . : 임의의 한 글자
  • ^x : 문장이 x로 시작
  • x$ : 문장이 x로 끝
  • x* : x가 0 번 이상 반복
  • x\+ : x가 1 번 이상 반복
  • x\{n,m} : x가 n번 이상 m번 이하
    • x\{n} : x가 n번 반복
    • x\{n,} : x가 n번 이상 반복 (가능한 많이)
    • x\{,m} : m번 이하 반복 (가능한 많이)
    • x\{-n,m} : n번 이상 m번 이하 (가능한 적게)
    • x\{-n,} : n번 이상 (가능한 적게)
    • x\{-,m} : m번 이하 (가능한 적게)
    • x\{-} : 0번 이상 (가능한 적게)
  • x\? : x가 있어도 되고 없어도 됨
  • x\|y : x 또는 y
  • \(\) : 그룹
  • \ : escape
  • [ ] : 문자 클래스
    • [a-z] : a ~ z 중 한 글자
    • [A-Z] : A ~ Z 중 한 글자
    • [0-9] : 0 ~ 9 중 한 숫자
    • [ㄱ-ㅎ|ㅏ-ㅣ|가-힣] : 한글 중 한 글자
  • \0, & : 찾은 문자 전체
  • \n : n 번째 그룹(\(\))

Examples

  • :%s/^\* / \* /g : *로 시작하는 줄 2 칸 들여쓰기
  • :%s/<code \([a-z|A-Z]*\)>/```\1/g: <code xxxx> -> ```xxxx
  • :%s/<a href="\(.\{-}\)" \?.\{-}>.\{-}<\/a>/\1/g : <a href="web">web</a>->web