표준 GNU etags
은 다양한 ctags -R
에 의해 수행 된 것과 같이 디렉토리의 재귀 보행을 지원하지 않습니다. GNU etags에만 접근 할 수 있다면 bash 쉘 매직을 사용하여 etags를 사용하여 모든 C++ 파일 *.cpp
및 *.h
의 파일을 현재 디렉토리와 현재 디렉토리 아래의 모든 디렉토리에 재귀 적으로 생성하여 TAGS를 만듭니다. 테이블을 현재 디렉터리에 emacs
에 대한 적절한 경로 이름이 TAGS 테이블 항목을 해결할 수 있습니다.쉘 마법을 사용하여 GNU etags를 사용하여 재귀 적 etags를 만드는 방법은 무엇입니까?
5
A
답변
12
Emacs Wiki은 자주 발생하는 일반적인 문제 또는 모범 사례에 대한 답변에 도움이됩니다. 특정 문제에 대한 Windows 및 Unixen 모두를위한 솔루션이 :
http://www.emacswiki.org/emacs/RecursiveTags#toc2
은 기본적으로 당신은 당신이 같은 다른 파일 엔딩을 사용하는 경우 모든 .cpp
모든 .h
파일 (변경 파일 선택기를 찾기 위해 명령을 실행 예 : , .C
) 결과를 etags로 파이프하십시오. Windows에는 xargs가없는 것 같기 때문에 stdin에서 읽을 수있는 최신 버전의 etags가 필요합니다 (stdin을 나타내는 줄 끝의 대시를 참고하십시오). 물론 최신 버전의 etags를 사용한다면 xargs 대신 dash 매개 변수를 사용할 수 있습니다.
윈도우 :
cd c:\source-root
dir /b /s *.cpp *.h *.hpp | etags --your_options -
유닉스 :
cd /path/to/source-root
find . -name "*.cpp" -print -or -name "*.h" -print | xargs etags --append
0
1
이 명령은 ETag를가 .c 인에 대한 기본 이름을 "태그"로 파일을 생성, cpp를, cpp를, .HPP, .hpp .h 파일 재귀 적으로
find . -regex ".*\.[cChH]\(pp\)?" -print | etags -
어떻게 되나요? 당신은 "오직 GNU etags에 접근 할 수 있습니까?" Exuberant ctags는 많은 플랫폼에서 무료로 사용할 수 있습니다. 그것을 설치할 수 없습니까? –
고용주가 허가받지 않은 소프트웨어를 설치하는 것을 원하지 않는다면, 제공되는'etags '를 사용하여 해결할 수 있다면 고용주는 그것을 막으려하지 않을 것입니다. – WilliamKF