tools/vim

vimgrep 기본 사용법

seul chan 2021. 1. 5. 22:04

What is vimgrep and how to use it

vimgrep은 vim의 빌트인 명령어로 vim의 regex engine을 사용한다. 다른 명령어들 (ack, git-grep)만큼 빠르지는 않지만 유용하게 사용 가능하다.

:vim[grep][!] /{pattern}/[g][j] {file} ...

패턴, 파일 두가지 인자를 받음.

현재 파일에서 검색

가장 쉬운 사용법은 % simbol로 현재 active buffer를 검색하는 것. (:help _%)

:vimgrep /\v`[^`]*`/g %

검색된 내용 사이의 이동은 다음으로 가능하다.

:cnext
:cprev
:cfirst
:clast

여러 파일에서 검색

여러 파일을 검색해보자.

일단 그냥 파일을 명시적으로 적어주는 방법이 있음.

:vimgrep /\v`[^`]*`/g filename1.md filename2.md filename3.md

wildcard를 사용할 수 있음.

# wildcard 사용
:vimgrep /\v`[^`]*`/g *.md

# backtick expression
:vimgrep /\v`[^`]*`/g `find . -type f`

args로 지정한 path를 ##로 사용이 가능하다.

:args `find . -type f`
:vimgrep /\v`[^`]*`/g ##
:vimgrep /\v`[^`]*`/g ##
:vimgrep /\v`[^`]*`/g ##

기타

  • g flag를 주지 않으면 가장 처음 나온 항목만 반환
  • pattern을 주지 않으면 모든 characters 검색
  • 더 좋은 툴을 사용하려면 git-grep, ack, ag 등을 사용

출처:

http://vimcasts.org/episodes/search-multiple-files-with-vimgrep/