2013-04-26 2 views
1

프로젝트 (예 : 도서관)가 100 개의 파일로 구성되어 있고 각 프로젝트에는 약 1000 줄의 코드가 들어 있다고 가정 해 보겠습니다. awesome_foo (...) 기능을 찾고 싶습니다. 어떻게 할 수 있습니까? 솔직히 ... 그것은 소름 효과거대한 프로젝트에서 이름으로 함수를 찾는 가장 좋은 방법은 무엇입니까?

편집을 grepping 찾을 : 나는 당신이 결과를 줄 것이다 함수 정의 definitly

+0

함수 정의 또는 함수가? –

+0

색인이 없다면 모든 파일을 살펴 보는 것이 유일한 방법일까요? –

+2

괜찮은 IDE는 심볼 검색, 정의로 이동, 또는 유사한 기능을해야합니다 ... – Timbo

답변

3

사용자가 직접 텍스트 검색 또는 정규식의 모든 인스턴스를 반환합니다 파일 도구에 큰 발견을 가지고 notepadd ++ 같은 것을 사용 할 수 있습니다. 나는 이것을 많이 사용하고 매우 도움이된다.

+0

너무 나쁜 메모장 + +는 리눅스에서 사용할 수 없습니다. –

+1

@BarathBushan이 http://code.google.com/p/npp-installer/ –

+0

@Armin 니스 하나지만, 여전히 와인을 사용하지만, 기본 성능은 아닙니다 ... –

4

grep -irnw "awesome_foo" * 주로 찾고 있어요.

매개 변수 :

-i, --ignore를 케이스

PATTERN이 상기 입력 파일 모두 케이스 구분을 무시한다.

-N, --line 번호

프리픽스 입력 파일 내의 행 번호와 각 출력 라인.

-R, -r, --recursive

반복적으로 각 디렉토리 아래의 모든 파일을 읽기; 이 옵션은 -d recurse 옵션과 동일합니다.

-w, --word - 정규 표현식

선택 전체 단어를 일치를 포함 만 라인. 테스트에서는 일치하는 부분 문자열이 줄의 시작 부분에 이거나 단어 앞에 비 단어가 있어야합니다. 마찬가지로, 행의 끝에는 이거나 단어가 아닌 구성 문자가 있어야합니다. Word- 구성 문자는 문자, 숫자 및 밑줄입니다.

+2

'--exclude = ...'를 사용하여'.a','.so'를 제외하면'이진 파일에서의 우연의 일치'... –

+0

@AdriC. 에스. 감사. 그게 유익한 정보. – Jeyaram

+0

대소 문자를 구별하는 언어를 검색 할 때 대소 문자를 무시하는 이유는 무엇입니까? –

0

eclipse IDE를 사용하십시오. 네비게이터에서 기능을 추적 할 수 있습니다. CodeInsight도 좋습니다. 프로젝트를 추가하여 코드를 추적하십시오. 저를 믿으면 시간이 절약 될 것입니다.

3

통합 개발 환경에서는 코드를 구문 분석하고 ctrl + 클릭 또는 키보드 단축키를 사용하여 각 기호의 선언 (또는 용도)을 탐색 할 수있는 색인을 생성합니다. 사람들이 대용량 코드베이스에서 자주 작업하는 방식입니다.

IDE를 사용하지 않는 경우에도 몇 가지 옵션이 있습니다.

CTags은 소스 파일을 읽고 해당 프로그램의 기호 정보가 들어있는 "인덱스 파일"을 생성하는 인덱서입니다. 그것은 편집기 (예 : Vim)에 연결되거나 사람이 읽을 수있는 심볼 참조를 생성 할 수 있습니다.

는 예를 program에 대한 ctags -x의 출력 :

DrawGLScene  37 lesson5.c  void DrawGLScene() 
InitGL    15 lesson5.c  void InitGL(int Width, int Height) // We call this right after our OpenGL window is created. 
ReSizeGLScene  24 lesson5.c  void ReSizeGLScene(int Width, int Height) 
keyPressed   62 lesson5.c  void keyPressed(unsigned char key, int x, int y) 
main    78 lesson5.c  int main(int argc, char **argv) 

그것은 "이름, 라인 및 파일, 서명"처럼 보이는 쉽게 수동으로 인덱스로 사용할 수 있습니다. 표, 사람이 읽을 수있는 상호 참조 (외부 참조) 대신에 태그 파일을 생성하는 표준 출력 파일

-x

인쇄. 출력에 포함 된 정보에는 태그 이름, 꼬리표의 종류; 태그를 정의하는 파일의 행 번호, 파일 이름 및 소스 행 (압축 된 여분의 공백이 있음) 태그 파일이 작성되지 않고 태그 파일 출력에 영향을주는 모든 옵션이 무시됩니다. 이 기능의 예제 응용 프로그램은 소스 파일 (예 : ctags -x --c-kinds = f 파일)에있는 모든 함수 목록을 생성하거나 소스 파일에있는 외부에서 볼 수있는 모든 전역 변수의 목록을 생성합니다 (예 : ctags -x --c-종류 = v - 파일 - 범위 = 파일 없음). 이 옵션은 첫 번째 파일 이름 앞에 와야합니다.

0

ctags/etags 프로그램은 Linux 및 Cygwin 환경에서 유용합니다. 그들은 vim이나 emacs와 같은 편집자와 다른 도구들에 대해 bindings을 가지고 있습니다. 함수를 선택하고 선언과 구현간에 앞뒤로 이동할 수 있습니다.

0

또 다른 가능성은 당신에게 grep 진술을 형성하는 gui를 제공하는 windows 어플리케이션입니다. '찌르기'를 꺼내서 복잡한 검색을 매우 간단하게 처리하는 과정을 만듭니다.

"기능 : - 정규 표현식은 (표준 마이크로 소프트 닷넷 정규식 사용 : 빠른 참조) 재귀 디렉토리 검색 - - - 가 동시 여러 파일 형식 A"위와 아래 라인을 선택하는 상황 "기능을 당신의 검색 식 - 검색 경로 에 대한 가장 최근에 사용한 목록 - 다소 다양한 인쇄 옵션 - 당신의 선택 의 편집기를 사용하여 파일을 열려면 더블 클릭 - 경기 전체 단어 만 - - 구문 highlighing 스토어는 가장 최근에 파일 이름과 검색을 사용 을 연산 식 - 무료 및 사 워스 오픈 ce "

관련 문제