전체 프로젝트 / 폴더에서 단어를 재귀 적으로 검색하려면 어떻게해야합니까?
JFactory
폴더 내 에서 클래스를 검색 하고 있으며 하위 디렉토리 라고 가정 합니다.
포함 된 파일을 어떻게 제출할 수 class JFactory
있습니까?
해당 단어를 바꾸고 싶지 않지만 class JFactory
.
:vimgrep /JFactory/ **/*.java
전체 단어 일치를 원하는 경우 패턴을 /JFactory/
로 바꿀 수 있습니다 /\<JFactory\>/
. :vim
는 :vimgrep
.
경우 JFactory
또는 \<JFactory\>
(예를 들어 당신이 명중 한 현재의 검색 패턴입니다 *
하나 개의 발생에가) 비어있는 검색 패턴을 사용할 수 있습니다 :vimgrep // **/*.java
, 대신 마지막 검색 패턴을 사용합니다. 능숙한!
경고 : :vimgrep
활성화 된 경우 autocmds를 트리거합니다. 이로 인해 검색 속도가 느려질 수 있습니다. 원하지 않는 경우 다음을 수행 할 수 있습니다.
:noautocmd vimgrep /\<JFactory\>/ **/*.java
더 빠를 것입니다. 그러나 구문 강조 표시를 트리거하거나 gz
gzip이 풀린 파일을 열지 않습니다 .
외부 프로그램이 패턴을 grep하도록하려면 다음과 같이 할 수 있습니다.
:set grepprg=ack
:grep --java JFactory
Ack
grep에 대한 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 결과를 자동으로 활성화하는 방법에 대한 힌트는 높이 평가 될 것입니다 ...
'IT이야기' 카테고리의 다른 글
Scala의 '::'연산자에 대하여 (0) | 2021.03.23 |
---|---|
Android : 모달 대화 상자 또는 유사한 모달 동작을 얻는 방법 (0) | 2021.03.23 |
오프라인 사용을위한 MDN 자바 스크립트 문서 (0) | 2021.03.22 |
Android 앱 업데이트에 대해 사용자에게 알리는 방법 (0) | 2021.03.22 |
Ubuntu 13.04의 R 3.0에 rJava를 설치할 수 없을 때 (0) | 2021.03.22 |