주어진 함수를 포함하는 모든 파일을 찾는 방법은 무엇입니까?

주어진 함수를 포함하는 모든 파일을 찾는 방법은 무엇입니까?

함수가 포함된 모든 파일을 나열하려고 합니다 matrixCal.

Linux에서 이 작업을 어떻게 수행할 수 있나요?

답변1

그렙은 괜찮나요?

grep -R matrixCal /location/of/your/code

답변2

당신은 이 프로그램에 관심이 있을 것입니다ack. 이는 소스 코드 디렉토리를 검색하고 읽기 쉬운 형식으로 유용한 콘텐츠를 반환하도록 특별히 설계되었습니다. 기본적으로 동일한 작업을 수행 grep하지만 더 친숙한 형식입니다.

답변3

전통적인 접근 방식은 소스 코드에 함수 및 변수 정의의 색인을 생성하고 편집기를 사용하여 색인을 검색하는 것입니다. 전통적인 인덱싱 명령은 다음과 같습니다.ctagstagsvi에서 사용할 수 있는 파일을 생성합니다 . Emacs는 다음과 같은 기능을 제공합니다.etags주문하다(파일 이름은 TAGS).

예를 들어, C 소스 트리의 경우 다음을 TAGS통해 Emacs용 파일을 생성할 수 있습니다.

find -type f -name '*.[hc]' -exec etags {} +

Subversion에서 체크아웃된 대규모 소스 트리의 경우 여기에 두 가지 개선 사항이 있습니다. .svn디렉터리를 무시하고 너무 길어서 명령줄 길이 제한을 초과할 수 없는 파일 계층을 처리합니다(각 연속 호출이 etags처음부터 문서에서 다시 작성되기 때문에 파일이 잘립니다). ).

: >TAGS
find -type d -name .svn -prune -o \
     -type f -name '*.[hc]' -exec etags -a {} +

그런 다음 Emacs에서 한 번 실행 하고 파일을 M-x visit-tags-table선택하십시오 . TAGS단어 위에 커서를 놓고 ( )를 matrixCal눌러 정의로 이동합니다(필요한 경우 정의가 포함된 파일을 엽니다). 발생 사이를 반복하려면 를 실행 하고 입력하여 한 발생으로 이동한 후 ( )를 사용하여 다음 발생으로 이동합니다. 버퍼 에서는 기호가 사용되는 위치에 대한 개요가 제공됩니다.M-.find-tagM-x tags-search^matrixCal$M-,tags-loop-continueTAGSM-x occur RET matrixCal RET

관련 정보