2013-04-28 15 views
17

Właśnie zainstalowałem YouCompleteMe dla Vima poprzez vundle. Działa, ale pokazuje tylko słowa zawarte w bieżącym pliku. Chcę go użyć do opracowania programów w C++, jak mogę go skonfigurować tak, aby pokazywał autouzupełnianie z pliku nagłówkowego C++ w/usr/include na przykład? Wielkie dzięki.Konfiguracja Vim YouCompleteMe

+2

Musisz zbudować i zainstalować klang do semantycznego zakończenia. Czy postępowałeś zgodnie z procesem instalacji opisanym w pliku readme programu YCM? – romainl

+0

Tak, postępuję zgodnie z instrukcjami, ale otrzymuję tylko autouzupełnianie lokalne. Aby zainstalować YCM jako pakiet vundle i wykonałem skrypt instalacyjny znajdujący się w katalogu YCM. Czy jest jakaś konfiguracja, którą przegapiłem? – mastergap

+8

Czy zrobiłeś './install.sh --clang-completer' lub'./Install.sh'? – romainl

Odpowiedz

0

Podczas gdy sugestie tutaj mogą działać na początku, nie jestem pewien, czy to właściwa droga. Według YCM dewelopera, przy każdym uruchomieniu projektu, trzeba nowego .ycm_extra_conf.py plik

Od https://valloric.github.io/YouCompleteMe/#ubuntu-linux-x64-super-quick-installation

YCM szuka .ycm_extra_conf.py pliku w katalogu otwartego pliku lub w dowolnym katalogu nad nim w hierarchii (rekursywnie); kiedy plik zostanie znaleziony, jest ładowany (tylko raz!) jako moduł Pythona. YCM wywołuje metodę FlagsForFile w tym module, która powinna dostarczyć mu informacji niezbędnych do skompilowania bieżącego pliku. Możesz również podać ścieżkę do globalnego pliku .ycm_extra_conf.py, który będzie używany jako element zastępczy. Aby uniemożliwić wykonanie złośliwego kodu z pliku, którego nie pisałeś, YCM zapyta Cię raz za .ycm_extra_conf.py, czy można go bezpiecznie załadować. To może być wyłączone i możesz tworzyć białe/czarne listy plików. Zobacz szczegóły w sekcji Opcje.

Chociaż może być konieczne tylko zmodyfikowanie flag kompilacji z wanilii .ycm_extra_conf.py, uważam, że wskazane jest utworzenie nowego pliku dla każdego rozpoczynanego projektu.

18

Musisz przejść do ~/.vim/bundles/YouCompleteMe i uruchomić skrypt instalacyjny z --clang-completer, podobnie jak ./install.sh --clang-completer. Po jego zakończeniu powinieneś mieć wsparcie dla języków w języku C.

Być może będziesz musiał umieścić let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py' w swoim ~/.vimrc.

+8

dla nowej wersji ycm zmieniono na: 'let g: ycm_global_ycm_extra_conf =" .vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py "' –

+2

wydaje mi się, że dla mnie całkowite zmęczenie i brak intuicji ta konfiguracja. Dlaczego muszę ustawić tę konfigurację na ukryty plik znajdujący się głęboko w folderze wtyczek? Dla mnie to po prostu źle się dzieje. – Arne

6

Zainstalowałem z patogenem. Próbowałem powyższych instrukcji z ./install.sh --clang-complete. Potem to nie zadziałało i rzeczywiście musiałem dodać ścieżkę. Ale było inaczej niż w innej odpowiedzi, a mianowicie:

let g:ycm_global_ycm_extra_conf = '.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py' 

, więc na ścieżce znajduje się dodatkowa "third_party/ycmd".

+0

bardzo dziękuję :) rozwiązał mój problem –