2010-11-01 12 views
17

Próbuję uzyskać vim, aby zapewnić pewną formę jQuery Omnicomplete. Użyłem ctags do generowania tagów na podstawie pliku jquery js. Po czym mam włączone omnicompletion dla javascript używającvim javascript omnicomplete

autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS 

po czym ustawić zmienną tagów do pliku znacznika utworzonego

set tags+=~/.vim/tags/jquery 

Gdy otwieram plik js i używać :ta jestem mogę znaleźć funkcję, której potrzebuję, ale kiedy próbuję użyć omnicompletion, po prostu się nie pojawia. Na przykład, wziąłem ten kod z siatką do badania:

$("input").has(".email").addClass("email_icon");  

w vim, po wpisaniu $("input")., uderzę kartę (z supertab skonfigurować) i has nie włącza się, mimo że można go znaleźć za pośrednictwem Wyszukiwarka fuzzy lub :ta

Jakieś sugestie dotyczące tego, co mogę zrobić, aby rozwiązać ten problem? Dziękujemy! :)

Odpowiedz

5

javascriptcomplete#CompleteJS nie używa pliku ctags do ukończenia.

Co możesz zrobić, możesz napisać własną funkcję omni-complete dla jQuery, a nawet lepiej rozwinąć funkcję javascriptcomplete#CompleteJS zdefiniowaną w /usr/share/vim/vim72/autoload/javascriptcomplete.vim, aby dopasować ją do swoich potrzeb.

+2

Nawiasem mówiąc, możesz uzyskać dostęp do opartego na tagach zakończenia za pomocą 'C-x C-]' lub wypróbuj SuperTab dla siebie. – ches

6

używać Mozilli za DoctorJS (dawniej jsctags), który jest również używany w Cloud9 IDE „s Ace online editor.

Zobacz moje odpowiedzi na this question i this question po więcej informacji (instalacja, konfiguracja itp.).

+0

Czy DoctorJS może obsługiwać źródło jQuery (funkcja "Wypróbuj" wydaje się nie być w stanie). –

+0

Nie mam pojęcia. Przepraszam. Musisz spróbować zobaczyć. –

+1

Wydaje się, że generuje ctagi dla wtyczek jquery dobrze, ale nie dla samego jquery (najwyraźniej dawno temu, ale to jest zepsute). – hendrixski