2010년 9월 10일 금요일

cscope 사용법

find로 문자열이 포함된 파일 찾기

  • find /path -name "*.c" | xargs grep pattern

cscope 설정
  • cscope는 ctags와 유사하나 더 많은 기능을 가진 것 같음.
  • cscope 설정방법
    • cscope를 설치.
    • http://cscope.sourceforge.net/cscope_maps.vim 을 cscope_maps.vim을 저장.
    • .vimrc 가 있는 폴더에 저장
    • .vimrc 파일에 cscope_maps.vim을 포함시킴.
    • 자신의 home directory에 저장했을 경우에 source ~/cscope_maps.vim 를 .vimrc에 포함.
  • c code가 있는 directory에서 cscope -R 로 database를 만듬.
    • -R은 하위 디렉토리도 포함함.
    • cscope ui 상이라면 CTRL-D 로 빠져 나감.
    • cscope.out 파일이 생성됨.
  • java 나 c++, python, awk, makefile등은 cscope가 구문분석하지 않음
    • C, lex, yacc 파일만을 (.c, .h, .l, .y) 기본적으로 구문분석함.
    • 다른 파일도 database를 추가하려면 아래와 같이
      • find . -name '*.java' >> cscope.files
      • find . -name '*.cpp' >> cscope.files
    • cscope.files 파일을 만든 후에 cscope -b -q -k 를 실행하여 database를 update.
      • cscope.files는 cscope.out과 같은 폴더에...
      • -b : only update database
      • -q : creating inverted index
      • -k : sets Cscope's 'kernel' mode--it will not look in /usr/include for any header files
cscope의 사용
  • vim 실행 후 source내에서 symbol 찾기
    • 찾을려고 하는 symbol 위에서 'CTRL+\,s' (컨트롤-역슬래시 입력하고 그냥 s)를 입력 => symbol로 빠르게 이동하거나 리스트가 보여짐. 리스트가 보여질 경우에는 선택하면 되고~
    • CTRL+t 하면 이전으로 고고
    • symbol위에서 'CTRL-spacebar s' 하면 vim 창을 분발하여 symbol로 이동.
  • vim command line에서 찾기 명령어
    • cscope 명령어를 사용하라.(or cs로 typing해도 됨)
    • cscope fine (querytype) "string"
    • (querytype)
      • s : symbol
      • g : definition
      • d : function called by this function
      • c : function calling this function
      • t : text
      • f : this file
      • i : include file
    • cscope 명령대신 scscope(or scs로 typing해도 됨) 사용하면 가로로 창이 분할되어 symbol을 찾음.

댓글 없음:

댓글 쓰기