2013-07-10 3 views
0

vimin에서 omnicppcomplete를 사용하는 데 문제가 있습니다. 실제로 .vimrc 문제인지 아니면 omnicppcomplete 문제인지 확실하지 않습니다. 내의 .vimrc에서, 나는 CTRL + F12 쳤을 때 내 프로젝트에 대한 태그를 생성하는 명령이 있습니다Vim 키 매핑 오류

map <C-F12> :!ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q .<CR> 

을하지만이 오류와 함께 실패합니다 : 그것은 나에게 매우 이상한 것 같다

ctags: Unknown option: --c++-n 

shell returned 1 

때문에 명령에서 --C++ - n 옵션을 사용하지 않습니다. 무엇보다 더 이상 나에게 것은 난 그냥 내 터미널

ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q 

에서 수동으로 명령을 실행하는 경우는 태그 파일을 생성하고 모든 것이 잘 작동하는 것 같다 것입니다. 그래서 그것을 키에 매핑하는 것은 그것을 엉망으로 만든다. 나는 여기 위키의 지침을 따랐다 : http://vim.wikia.com/wiki/C%2B%2B_code_completion.

나는 그것을 사용하지 않을 때 --C++ - n에 대해 왜 불평하는지에 대해 혼란 스럽다. 어떤 도움이라도 대단히 감사합니다.

편집 :

모두 "! ctags를" "는/usr/빈/ctags를"셀의 리턴에 "ctags를"정력과에. 그러나 "ls/usr/bin | grep ctags"를 실행하면 "ctags"와 "ctags-exuberant"를 모두 반환합니다.

나는 ctags-exuberant를 제거하고 다시 설치했습니다. 이제 vim에서 c-F12를 치려고하면 명령에 오류가 발생하지 않습니다. 다시 셸로 돌아와서 Enter 키를 눌러 계속 진행하지만 코드에서 개체, 그것은 여전히 ​​"패턴을 찾을 수 없습니다"라고 말합니다. 내가 별도의 디렉토리에 이런 작은 테스트 파일을 만들 경우

그러나, 상기 taglist를 구축

struct MyStruct { 
    int a; 
    int b; 
    int long_name; 
}; 

int main(int argc, char** argv) { 

    MyStruct a; 
    a.  
} 

히트 C-F12, 자동 완성 작품은 잘 ... 난에 원하는 그래도 같은 디렉토리에있는 다른 파일에 정의 된 클래스가 있으면 작동합니다.

답변

1

정교한 ctags를 다시 설치했는데 문제가 해결되었습니다.

4

문제는 키 매핑이 아닙니다. 매핑 라인을 내 .vimrc에 복사하고 gvim에서 ctrl-f12를 누르면 해당 명령이 실행되는 명령을 에코합니다. 위와 똑같은 명령입니다.

vim에서 ctags이 다른 파일/실행 파일 일 수 있습니까? :!which ctags은 vim에서 무엇을 말하고 which ctags은 쉘에서 무엇을 말합니까?

+1

내 추측은 멋지다. ctags와 normal ctags는 비슷할 것이다. – FDinoff

+0

피드백에 감사드립니다. 나는 당신이 요구 한 것에 기초하여 나의 대답을 업데이트했다. – Sterling