2012-05-10 72 views
6

我喜歡在vim中使用clang。如何通過boost減少clang_complete搜索的時間

我一直都有的一個問題是,每當我加入boost時,每次我把「鏗鏘聲」都通過boost庫。在一個對象名後面。它需要5-10秒。

因爲我沒有改變提升標題,有沒有辦法通過提升緩存搜索? 如果沒有,是否有辦法從自動完成搜索中刪除提升?

更新(1)響應由adaszko 後 回答:令g:clang_use_library = 1

  1. I型的變量的名稱。
  2. 我按^ N。 Vim開始搜索boost樹。它會自動完成變量。
  3. 我按「」。並獲得以下錯誤:
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 

...並沒有自動compeltion

更新(2) 不知道clang_complete應該把這個問題的護理提升。沒有插件的vim通過boost進行搜索。 超級用戶有一個answer註釋掉通過升壓器搜索與set include=^\\s*#\\s*include\ \\(<boost/\\)\\@!

+0

你對Vim的變量g:clang_use_library有什麼價值? – adaszko

+0

@adaszko':讓g:clang_use_library'返回'g:clang_use_library#0' –

回答

0

here,您可以添加以下到您的.vimrc

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

(緩存通過提升搜索的問題仍然是開放的,雖然)

3

所以,你至少有兩個選項。選項#1將g:clang_use_library 設置爲1。以下是:help g:clang_use_library所說的內容:

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. 

這需要Python Vim集成的工作設置。

選項#2是設置g:clang_complete_auto到由禁用後->.:: 自動完成,並可以使用代替<C-x> <C-o>每當 要手動調用clang_complete 0

我使用兩者。

+0

選項2工作 –

+0

也許這會在將來的版本中有所改進。 – adaszko

+0

對於選項1,我添加了更新(1) –

0

我已經做了很多的性能增強到clang_complete,你可以檢查有關這個問題#187。由於未優化的代碼,問題的很大一部分就是腳本性能很差。