2010-11-01 18 views
17

Tôi đang cố gắng để có được vim để cung cấp một số hình thức của jQuery Omnicomplete. Tôi đã sử dụng ctags để tạo ra các thẻ dựa trên ont file jquery js. Sau đó tôi đã bật omnicompletion cho javascript sử dụngvim javascript omnicomplete

autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS 

sau đó tôi đặt biến thẻ vào tập tin thẻ tôi đã tạo

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

Khi tôi mở một file js, và sử dụng :ta Tôi có thể tìm thấy chức năng tôi muốn, nhưng khi tôi cố gắng sử dụng tính toàn vẹn, nó chỉ không bật lên. Ví dụ, tôi lấy mã này từ mạng để kiểm tra:

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

Trong VIM, sau khi nhập $("input")., tôi nhấn tab (với supertab thiết lập) và has không bật lên, mặc dù tôi có thể tìm thấy nó thông qua công cụ tìm kiếm mờ hoặc :ta

Bất kỳ đề xuất nào về những gì tôi có thể làm để giải quyết vấn đề này? Cảm ơn! :)

Trả lời

5

javascriptcomplete#CompleteJS không sử dụng tệp ctags để hoàn thành.

Điều bạn có thể làm là, bạn có thể viết hàm omni hoàn chỉnh cho jQuery, hoặc thậm chí tốt hơn, mở rộng hàm javascriptcomplete#CompleteJS được xác định trong /usr/share/vim/vim72/autoload/javascriptcomplete.vim để phù hợp với nhu cầu của bạn.

+2

Nhân tiện, bạn có thể truy cập hoàn thành dựa trên thẻ bằng 'C-x C-]' hoặc có SuperTab dùng thử cho bạn. – ches

6

Sử dụng Mozilla DoctorJS (trước đây là jsctags), cũng được sử dụng trong Cloud9 IDE 's Ace online editor.

Xem câu trả lời của tôi cho this questionthis question để biết thêm thông tin (cài đặt, cấu hình, v.v.).

+0

DoctorJS có thể xử lý nguồn jQuery (tính năng "Try It" dường như không thể). –

+0

Tôi không biết. Lấy làm tiếc. Bạn sẽ phải thử và xem. –

+1

Có vẻ như để tạo ra ctags cho jquery plugins tốt, nhưng không phải cho jquery chính nó (nó dường như được sử dụng từ lâu, nhưng đó là bị hỏng). – hendrixski

Các vấn đề liên quan