2012-08-02 35 views
5

Tôi đang phát triển trên đầu trang của OpenLayers.js. thư mục dự án của tôi được cấu trúc như sau:Tự động hoàn thành Vim + Đề xuất?

project/
    |-- OpenLayers.js 
    |-- map.html 
    |-- map.js 
    \-- etc 

Như bạn có thể tranh luận, khi tôi bắt đầu một dự án bản đồ mới, tôi espect gợi ý từ Vim về cách để hoàn thành mã, đọc lớp JS từ tất cả các thư viện trong dự án thư mục (trong trường hợp này, chỉ cần OpenLayers.js).

ví dụ .:

map = new OpenLayers. --> <C-x><C-o> 
map = new OpenLayers.Bounds 
        .Control 
        .Map 

Lựa chọn một trong các lớp đề nghị tôi sẽ nhận được một loại autocompletion, giống như trong Aptana. Tôi đã cài đặt AutoComplPop và tôi nhận được một menu tự động đẹp để chọn đề xuất, nhưng tất cả chúng được lấy từ tệp JS hiện tại.

Dù sao, tôi đã thiết lập đúng Tagbar + Node.js + jsctags và tôi đã tạo tags tập tin cho dự án của tôi, và nói thêm set tags=./tags,./../tags,./*/tags để .vimrc tôi.

Trong trường hợp này, Tagbar ánh xạ cấu trúc JS tệp hiện tại nhưng không cung cấp bất kỳ ánh xạ nào của các lớp đến từ các tệp khác.

Một dòng có thể có liên quan trong .vimrc tôi:

autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS 

Tôi đang đấu tranh để nhận được gợi ý lớp và lớp con và bây giờ tôi nhận được một chút nhầm lẫn với tất cả các plugins/phần mềm có sẵn.

Bất kỳ gợi ý nào? Cảm ơn các bạn :)

Trả lời

-1

Kỳ vọng của bạn hơi cao. Vim không phải là một IDE như Aptana và các cơ chế được sử dụng để cung cấp hoàn thành là thô.

Bạn có kiểm tra xem tệp tags của mình có OpenLayers.Bounds, OpenLayers.Control hoặc OpenLayer.Map không? Tôi không thể tìm thấy OpenLayer.Map và, thông qua số OpenLayer.debug.js Tôi cũng không thể tìm thấy chức năng này.

TagBar chỉ hoạt động với bộ đệm hiện tại. Nếu bạn muốn hiển thị thẻ cho các cửa sổ/bộ đệm khác, bạn sẽ cần một plugin cũ hơn: TagList.

AutoComplPop không hỗ trợ JS ra khỏi hộp. Bạn đã thiết lập nó như thế nào? Here is how I did nhưng vẫn sử dụng <C-x><C-o> trong khi hoàn thành từ tags được thực hiện với .

+0

Vâng, tôi đã thiết lập AutoComplPop như bạn đã đề xuất trong bài đăng khác và giờ nó hoạt động các lớp tải từ tệp 'thẻ'. Vấn đề lúng túng duy nhất mà tôi nhận được hiện nay liên quan đến Openlayers.js: 'jsctags OpenLayers.js' cho tôi một lỗi' Lỗi: fixStm: 44, dòng 261', vì vậy tôi không thể tạo tệp 'tags' từ nó. Nhưng nó là một câu chuyện khác. – fradeve

+0

câu trả lời này có thể gợi ý việc bỏ cài đặt tự động hoàn thành và định nghĩa cho Vim.Có các plugin như youcompleteme và tern mà dường như hoàn thành những gì OP đang yêu cầu. –

+0

@MaciejJankowski, không có YCM hoặc Tern vào năm 2012. – romainl

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