2012-05-10 32 views
6

Tôi thích sử dụng tiếng kêu với vim.Cách giảm thời gian tìm kiếm clang_complete thông qua tăng

Một vấn đề mà tôi luôn luôn có là bất cứ khi nào tôi bao gồm tăng cường, clang đi qua thư viện tăng mỗi khi tôi đặt "." sau một tên đối tượng. Phải mất 5-10 giây.

Vì tôi không thực hiện thay đổi để tăng tiêu đề, có cách nào để lưu bộ nhớ cache tìm kiếm thông qua tăng không? Nếu không, có cách nào để loại bỏ tăng từ tìm kiếm tự động hoàn thành không?

cập nhật (1) trong phản ứng để trả lời bởi adaszko sau : hãy g: clang_use_library = 1

  1. Tôi gõ tên của một biến.
  2. Tôi nhấn^N. Vim bắt đầu tìm kiếm thông qua cây tăng cường. nó tự động hoàn thành biến.
  3. tôi nhấn "." và nhận được các lỗi sau đây:
Error detected while processing function ClangComplete: 
line 35: 
Traceback (most recent call last): 
Press ENTER or type command to continue 
Error detected while processing function ClangComplete: 
line 35: 
    File "<string>", line 1, in <module> 
Press ENTER or type command to continue 
Error detected while processing function ClangComplete: 
line 35: 
NameError: name 'vim' is not defined 
Press ENTER or type command to continue 
Error detected while processing function ClangComplete: 
line 40: 
E121: Undefined variable: l:res 
Press ENTER or type command to continue 
Error detected while processing function ClangComplete: 
line 40: 
E15: Invalid expression: l:res 
Press ENTER or type command to continue 
Error detected while processing function ClangComplete: 
line 58: 
E121: Undefined variable: l:res 
Press ENTER or type command to continue 
Error detected while processing function ClangComplete: 
line 58: 
E15: Invalid expression: l:res 
Press ENTER or type command to continue 

... và không có tính năng tự động compeltion

cập nhật (2) không chắc chắn nếu clang_complete nên chăm sóc của vấn đề với tăng cường. vim mà không cần plugin tìm kiếm thông qua tăng. superuser có answer để nhận xét ra tìm kiếm thông qua dirs tăng với set include=^\\s*#\\s*include\ \\(<boost/\\)\\@!

+0

Giá trị của biến Vim của bạn là gì: gang_use_library? – adaszko

+0

@adaszko ': hãy g: clang_use_library' trả về' g: clang_use_library # 0' –

Trả lời

0

từ here, bạn có thể thêm dòng sau vào bạn .vimrc:

:set include=^\\s*#\\s*include\ \\(<boost/\\)\\@! 

(câu hỏi về bộ nhớ đệm việc tìm kiếm thông qua tăng vẫn còn mở dù)

3

Vì vậy, bạn có ít nhất hai lựa chọn. Tùy chọn # 1 là đặt g:clang_use_library đến 1. Dưới đây là những gì :help g:clang_use_library nói về nó:

Instead of calling the clang/clang++ tool use libclang directly. This 
gives access to many more clang features. Furthermore it automatically 
caches all includes in memory. Updates after changes in the same file will 
therefore be a lot faster. 

Điều này yêu cầu thiết lập hoạt động của tích hợp Python Vim.

Lựa chọn # 2 là để thiết lập g:clang_complete_auto để 0 mà bạn vô hiệu hóa hoàn thành tự động sau khi ->, ., :: và có thể sử dụng thay vì <C-x> <C-o> tự gọi clang_complete bất cứ khi nào bạn muốn.

Tôi sử dụng cả hai.

+0

tùy chọn 2 làm việc –

+0

Có lẽ điều này sẽ cải thiện trong các phiên bản sau. – adaszko

+0

cho tùy chọn 1, tôi đã thêm một bản cập nhật (1) –

0

tôi đã thực hiện rất nhiều cải tiến hiệu suất để clang_complete, bạn có thể kiểm tra về vấn đề này tại số #187. Phần lớn vấn đề chỉ là hiệu năng kịch bản yếu do mã không được tối ưu hóa.

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