Właśnie skompilowałem i zainstalowałem wtyczkę Vim, Vundle i YouCompleteMe zgodnie ze wstępem na Github. Ale wtyczka YouCompleteMe nie działa dobrze w moim Vimie. Może automatycznie uzupełnić nazwę zmiennej, ale nie kończy automatycznie operacji obiektów STL (wektor, mapa). Nie może nawet automatycznie uzupełnić "this->" w klasie. Zawsze mi mówi "(^ U^N^P) Nie znaleziono wzoru." Czy już to widzieliście? Używam Ubuntu 12.04. Co mam zrobić?Wtyczka My YouCompleteMe Vim nie obsługuje STL
Odpowiedz
Przyszedłem tu również szukając odpowiedzi, nie znam Pythona i nigdy wcześniej nie włamywałem się do czegoś innego. Oto jak do tego doszedłem.
Znajdź komunikat o błędzie. Poszedłem do ~/.vim/bundle/YouCompleteMe i grepped na "wbudowane obejmuje". Czemu? ponieważ jest to część komunikatu o błędzie:
- a. Nie znalazłem tego, więc przeszedłem na wyższy poziom (cd ..) i powtórzę.
- b. Znalazłem go poniżej: ./vundle/plugin/libclang.py: print "OSTRZEŻENIE: biblioteka NxD libclang nie może znaleźć załączników wbudowanych."
Zmodyfikowany komunikat o błędzie, aby upewnić się, że ten plik był uruchamiany (moje inicjały NxD) - działał.
- Komunikat jest drukowany initClangComplete
- komunikat jest wyświetlany po wywołaniem builtinHeaderPath = getBuiltinHeaderPath (library_path) Stąd zagłębić głębiej builtinHeaderPath
getBuiltinHeaderPath prowadzi pętlę znanych katalogów. Mam 2 instalacje typu clang
- a. ~/Katalog do pobrania - gdzie wszystkie oprogramowanie na świecie jest zrzucane
- b./Usr/local, ponieważ chciałem najnowszą szczęk którego sklonowany, opracowany i zbudowany
dodałam obie ścieżki do tej tablicy: knownPaths
"/usr/local/include", "/usr/local/lib/clang/3.3", "/home/nxd/Downloads/clang+llvm-3.2-x86_64-linux-ubuntu-12.04/clang/3.2"
I zauważył, że "" jest separator elementy tablicy w python. Też wcześniej zauważyłem, że print -> umieszcza komunikat w pythonie, a argumenty są w stylu c% s,% d itd. Pracy - (w ten sposób na ekranie pojawił się komunikat "wbudowany dodatek")
Zrzuciłem także niektóre instrukcje drukowania do pętli, więc zobacz, co widział i co robi. Kod
część funkcji zmodyfikowany „getBuiltinHeaderPath”
print "active path from knownPaths is |%s|" %path files = os.listdir(path) print " files in path is |%s|" % files print " len (files) is |%d|" % len(files) if len(files) >= 1: files = sorted(files) subDir = files[-1] else: subDir = '.' # nxd - subDir = '.' path = path + "/" + subDir + "/include/" print " len (files) is |%d|" % len(files) print " files[-1] is |%s|" % files[-1] print "searching in path : |%s| " % path
zdałem sobie sprawę, że oczekiwane zachowanie plików [-1] nie było, co autor ma i zmodyfikowała go po jeśli warunek pozostać niezmienione.
Zrestartuj vima z nowym plikiem cpp i przyjrzyj się: wiadomościom - zadziałało.
Nadzieję, że pomaga.
Plik readme na github repo dla wtyczki rozwiązuje teraz problem.
Jest to spowodowane problemem z libclang. Kompilacja z języka binarnego używa poprawnych domyślnych ścieżek wyszukiwania nagłówków, ale kompilacja z biblioteki libclang.so nie działa. Problem wydaje się mieć wpływ na niektóre systemy operacyjne bardziej niż na inne. Wygląda na to, że w szczególności OS X Mavericks ma z tym problemy.
Obecne obejście polega na wywołaniu echa | clang -v -E -x C++ - i spójrz na ścieżki pod #include < ...> tutaj zaczyna się wyszukiwanie: nagłówek. Powinieneś wziąć te ścieżki, poprzedzić -system do każdej ścieżki i dołączyć je wszystkie do listy flag, które zwrócisz z funkcji FlagsForFile w pliku .ycm_extra_conf.py.
Warto również spojrzeć na odpowiednim issue
- 1. Konfiguracja Vim YouCompleteMe
- 2. Vim nie obsługuje Unicode?
- 3. Błąd Libpython podczas budowania YouCompleteMe
- 4. YouCompleteMe, pliki nagłówkowe
- 5. Czy wtyczka Jenkins Pipeline obsługuje Docker Compose?
- 6. Do czego służy wtyczka L9 vim?
- 7. Wtyczka Vim dla lepszej nawigacji XML/HTML?
- 8. C++ kontenery STL
- 9. Wtyczka wydawcy nie przesyła plików
- 10. Vim makro lub wtyczka do sekwencyjnego ponumerowania elementów xml?
- 11. Czy istnieje wtyczka do vim do automatycznego importowania bibliotek Pythona?
- 12. C++ STL pop_heap nie działa
- 13. Jak mogę powiedzieć, którego vim użyć?
- 14. mapa wektorów w STL?
- 15. Critique my heap debugger
- 16. Wtyczka Perforce dla systemu Windows nie działa?
- 17. Czy istnieje wtyczka vim, która powoduje, że atrybuty Łosia pojawiają się w Tag_List?
- 18. Alternatywa dla NERDTree w Vim
- 19. Usługa nie obsługuje chkconfig
- 20. xcode4 nie obsługuje Perforce?
- 21. (Obiekt nie obsługuje #inspect)
- 22. Wtyczka NSIS Eclipse nie działa
- 23. Szukasz wektora C++ STL wewnątrz wektora STL
- 24. Obsługa błędów STL bez wyjątków
- 25. vim-flake8 nie działa
- 26. vim: autoindent nie działa
- 27. Wtyczka Maven java.library.path
- 28. dlaczego pliki nagłówkowe STL nie mają rozszerzenia?
- 29. My R ma wycieki pamięci?
- 30. konsolidacja plików vim w folderze ~/.vim
można potwierdzić, że masz zainstalowane wszystkie dependancies? Jakie kroki * dokładnie * podążyłeś? W jakim poradniku podążałeś ("super szybki" lub "pełny")? Dlaczego pytasz o tę bardzo ogólną stronę zamiast własnego trackera problemów YCM? – romainl
Mam problemy z uruchomieniem YCM. Zrobiłem szybką instalację. Próbując przekopywać się, że nie działa teraz trochę stracił na tym, jak rozwiązać problemy z YCM. Jest wiele części, których nie rozumiem. Czy możesz podać kilka sugestii @romaini o tym, jak rozwiązywać problemy! – Prospero
@romainl Skompilowałem długą drogę i nadal miałem kłopoty, potem spojrzałem na plik konfiguracyjny ycm i zdałem sobie sprawę, że to był problem, który miałem. Nie wiem, gdzie są moje standardowe biblioteki =. – Prospero