답변:
:[vim]grep
over의 한 가지 이점은 /?
결과가 빠른 수정 목록 (또는 사용하는 경우 위치 목록 :l[vim]grep
)에 저장된다는 것입니다 . 이는를 사용하여 모든 일치 목록을 가져올 수 있음을 의미합니다 :cl
. 그런 다음 숫자를 사용하여 목록에서 원하는 결과로 직접 이동할 수 있습니다.
또한 :[vim]grep pattern %
전체 코드베이스 를 검색하는 것과 동일한 명령을 사용하여 현재 버퍼 를 검색 할 수 :[vim]grep pattern path
있으므로 대칭이 좋습니다.
또한 Silver Surfer / Ripgrep 을 사용하여 강력한 검색 기능을 제공 할 수 있습니다. 이들은 :[vim]grep
명령에 매핑 될 수 있습니다 .
내가 볼 3 가지 주요 장점이 있습니다
일관된 regex
엔진 / 구문 사용 :를 사용 :grep/vimgrep
하면 등을 grepprg
정의 할 수있는을 정의 할 수 있습니다 grep/ack/ag
.이를 사용하여 일관된 regex
엔진을 사용하여 현재 버퍼 또는 여러 버퍼 / 파일을 검색 할 수 있습니다 . 반면에 vim/pattern
옵션 을 사용 하면 구문과 다른 구문을 가진 vim의 기본 정규식 엔진에 붙어 extended regular expression
있습니다. 따라서 표현식을 검색해야 할 때마다 사용해야하는지 \)
또는 )
다른 점 과 다른 차이점 을 생각 / 기억해야합니다 . 이것은 매우 성 가실 수 있습니다 ( https : //.com/questions/3864467/whats-the-difference-between-vim-regex-and-normal-regex )
vimgrep은 빠른 수정 / 위치 목록을 채 웁니다 .를 사용 :grep/vimgrep
하면 검색 목록을 채울 수 있습니다. ( https://medium.com/@lakshmankumar12/quickfix-and-location-list-in-vim-ca0292ac894d ).
위치 목록을 사용하려는 ]q
경우 Tim-Popes uninpaired 플러그인 ( https://github.com/tpope/vim-unimpaired ) 이있는 경우 바로 가기를 사용하여 탐색 할 수 있습니다.
vim 내에있는 복잡한 검색 : 일반적으로 복잡한 검색을 수행해야하는 경우 명령 줄을 사용해야 할 수도 있습니다. 그러나 greprg
올바르게 정의하고 [1]과 같은 명령을 사용하는 경우
: vim / pattern1 / find . -type f
매우 복잡한 검색을 수행 location list
하거나 또는에 검색 결과를 표시 할 수 있습니다 quickfix list
.
[1] http://vimcasts.org/episodes/search-multiple-files-with-vimgrep/