vim에서 omnicompletion 또는 omnicompletion 기능을 사용하여 glibc 기능의 자동 완성을 구현하고 싶습니다. 예를 들어 C 소스 파일에 pri를 입력한 다음 C-x C-o를 눌러 목록을 표시하면 printf 등이 완료됩니다.
이제 문제는 ctags를 사용하여 glibc-headers-2.15-57.fc17.i686에 의해 설치된 표준 C 헤더 파일을 처리하고 tag_glibc 파일을 생성한다는 것입니다. 그러나 C 소스 파일에 pri를 입력한 다음 C-x C-o를 입력하면 팝업 메뉴에는 stdio2.h에 printf의 정의와 프로토타입 선언만 있고 stdio.h의 printf 선언은 없습니다. 이상한 점은 vim을 사용하여 생성된 태그 파일을 보고 printf를 검색한 결과 다음 세 가지 항목을 찾았다는 것입니다.
마지막 항목은 ctags가 stdio.h에서 printf의 프로토타입 선언(p 유형)을 생성한다는 것을 보여줍니다. 그런데 삽입 모드에서 pri<C-x C-o>를 입력하면 왜 세 번째 항목을 볼 수 없나요? 내가 어디서 잘못됐나요? ?
fprintf(이 기호는 stdio.h 및 stdio2.h에서 사용 가능), memcpy(string.h 및 string3.h에서 사용 가능)와 같은 함수에서도 동일한 현상이 발생합니다.
내 시스템은 fedora17(3.6.3-1.fc17.i686)이고 ctags는 최신 버전인 5.8
입니다.
사용된 ctags 명령은 다음과 같습니다:
그 중 glibc-headers-filelist.txt를 생성하는 명령은 다음과 같습니다.
으아악vim 전문가 여러분, glibc 헤더 파일의 태그 파일을 더 잘 생성할 수 있는 방법이 있습니까?
-e
외부 태그를 포함합니다. ctags는 일반적으로 함수나 변수의 외부 선언을 무시합니다. 이는 자신의 프로그램에 대한 태그를 생성할 때 편리합니다. 시스템 표준 헤더 파일의 extern 선언에 대한 태그 파일은 매우 편리한 리소스가 될 수 있으므로 이 -e 플래그가 생성되었습니다.
http://elvis.the-little-red-haired-gi에서...
태그 파일을 사용하는 경우 태그가 있는 디렉터리에서 vim을 열어야 합니다.
다른 디렉터리를 사용하는 경우 vim에서 태그 변수를 설정해야 하며, 변수 값은 태그 파일 경로입니다. 예:
으아악