IT이야기

전체 프로젝트 / 폴더에서 단어를 재귀적으로 검색

cyworld 2021. 3. 23. 21:12
반응형

전체 프로젝트 / 폴더에서 단어를 재귀 적으로 검색하려면 어떻게해야합니까?


JFactory폴더 내 에서 클래스를 검색 하고 있으며 하위 디렉토리 라고 가정 합니다.

포함 된 파일을 어떻게 제출할 수 class JFactory있습니까?

해당 단어를 바꾸고 싶지 않지만 class JFactory.


:vimgrep /JFactory/ **/*.java

전체 단어 일치를 원하는 경우 패턴을 /JFactory/바꿀 수 있습니다 /\<JFactory\>/. :vim:vimgrep.

경우 JFactory또는 \<JFactory\>(예를 들어 당신이 명중 한 현재의 검색 패턴입니다 *하나 개의 발생에가) 비어있는 검색 패턴을 사용할 수 있습니다 :vimgrep // **/*.java, 대신 마지막 검색 패턴을 사용합니다. 능숙한!

경고 : :vimgrep활성화 된 경우 autocmds를 트리거합니다. 이로 인해 검색 속도가 느려질 수 있습니다. 원하지 않는 경우 다음을 수행 할 수 있습니다.

:noautocmd vimgrep /\<JFactory\>/ **/*.java

더 빠를 것입니다. 그러나 구문 강조 표시를 트리거하거나 gzgzip이 풀린 파일을 열지 않습니다 .

외부 프로그램이 패턴을 grep하도록하려면 다음과 같이 할 수 있습니다.

:set grepprg=ack
:grep --java JFactory

Ackgrep에 대한 Perl로 작성된 대안입니다. 그런 다음 Perl 정규식으로 전환해야합니다.

선택한 명령이 반환되면의 Vim 문서에 설명 된 명령으로 검색 결과를 탐색 할 수 있습니다 :help quickfix. 조회 :cfirst, :cnext, :cprevious, :cnfile, 등

2014 업데이트 : 이제와 그렇게 할 수있는 새로운 방법이있다 the_silver_searcher또는 the_platinum_searcher및 하나 ag.vim또는 unite.vim플러그인.


프로젝트 루트 폴더에서 다음을 실행하십시오.

grep -H -r 'what_you_search' * | less

폴더 목록과 해당 문자열과 일치하는 줄이 표시됩니다.


Silver Searcher ( https://github.com/ggreer/the_silver_searcher )를 적극 권장합니다. 정말 빠릅니다!

설치

sudo pacman -S the_silver_searcher  // arch linux 
sudo apt install silversearcher-ag  // ubuntu

용법

$ ag keywords

vim과 통합

rking / ag.vim ( https://github.com/rking/ag.vim )

설치 후

:Ag keywords

한 번 봐 가지고 ctags를 하고 cscope를 사용하면 클래스와 함수 정의로 이동하자 그 함수 / 클래스가 사용되는 경우 찾을 수 있습니다.


이 스크립트가 도움이 될 수 있습니다. Filesearch .


다음과 같이 명령 줄 창을 엽니 다.

Esc-정상 모드인지 확인합니다.

유형 q, 유형 :

명령 줄이 열릴 것입니다 (모든 vim 파일에서 일반적으로 탐색하는 것처럼 탐색 할 수있는 명령을 작성하는 tmp 파일과 같습니다 ...

삽입 모드로 들어가려면 i를 입력하십시오.

이 예제는 ' .js'및 ' .java' 유형의 모든 파일 유형에 대해 현재 디렉토리 아래에있는 to_srch 문자열을 재귀 적으로 검색 하지만 node_modules 문자열을 포함하는 모든 파일 경로를 생략합니다.

:g/console.log/ | :vimgrep /console.log/ `find . -type f -name '*.js' -o -name '*.java' -not -path '*node_modules/*'`

이제 wheen 당신은 sarch 결과를 통해 화살표 키로 탐색 할 수 있습니다 ...

.vimrc에서 설정할 수도 있습니다.

    " how-to search recursively under the current dir for the files of type js and java but omit the
    " node_modules file paths
    ":g/console.log/ | :vimgrep /console.log/ `find . -type f -name '*.js' -o -name '*.java' -not -path '*node_modules/*'`
    " reminder open the quick fix window by :copen 20
    " reminder close the quick fix window by :ccl

첫 번째를 생략 할 수 있습니다. : q / to_srch / ~ / .vimrc에 "set hlsearch"가 있으므로 검색 결과를 자동으로 강조 표시하는 데 사용합니다.

vimgrep 또는 vimrc의 srch 결과를 자동으로 활성화하는 방법에 대한 힌트는 높이 평가 될 것입니다 ...

참조 URL : https://stackoverflow.com/questions/7950558/how-can-i-search-a-word-in-whole-project-folder-recursively

반응형