2012-05-10 12 views
6

Lubię używać klang z vim.Jak skrócić czas wyszukiwania clang_complete przez zwiększenie

Jedyny problem, który zawsze mam, to to, że kiedykolwiek dodam doładowanie, clang przechodzi przez bibliotekę boost przy każdym umieszczeniu "." po nazwie obiektu. Zajmuje 5-10 sekund.

Ponieważ nie wprowadzam zmian w nagłówkach doładowania, czy istnieje sposób na buforowanie wyszukiwania przez zwiększenie? Jeśli nie, czy istnieje sposób na usunięcie zwiększenia z wyszukiwania automatycznego uzupełniania?

aktualizacji (1) w odpowiedzi na odpowiedź, adaszko po niech g: clang_use_library = 1

  1. typu I nazwę zmiennej.
  2. Naciskam^N. Vim zaczyna przeszukiwać drzewo boostów. automatycznie uzupełnia tę zmienną.
  3. i naciśnij "." i uzyskać następujące błędy:
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 

... i nie ma auto-compeltion

Update (2) nie wiem, czy clang_complete powinien dbać o numerze z doładowaniem. vim bez wtyczek szuka przeszukiwania. Użytkownik superuser ma answer, aby skomentować wyszukiwanie poprzez dliki uzupełniające z set include=^\\s*#\\s*include\ \\(<boost/\\)\\@!

+0

Jaka jest Twoja wartość zmiennej Vim g: clang_use_library? – adaszko

+0

@adaszko ': let g: clang_use_library' zwraca' g: clang_use_library # 0' –

Odpowiedz

0

z here, można dodać następujące wpisy do .vimrc:

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

(kwestia buforowanie wyszukiwanie poprzez impuls jest nadal otwarta chociaż)

3

Masz co najmniej dwie opcje. Opcja nr 1 to ustawienie g:clang_use_library na 1. Oto co :help g:clang_use_library mówi o tym:

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. 

wymaga konfiguracji roboczej integracji Python Vima chociaż.

Opcja nr 2 jest ustawiony g:clang_complete_auto do 0 przez którą wyłączyć automatyczne uzupełnianie po ->, ., :: i może wykorzystać <C-x> <C-o> zamiast ręcznie wywołać clang_complete kiedy chcesz.

Używam obu.

+0

opcja 2 działała –

+0

Być może poprawi się to w przyszłych wersjach. – adaszko

+0

dla opcji 1, dodałem aktualizację (1) –

0

Zrobiłem wiele ulepszeń wydajności do clang_complete, możesz sprawdzić o tym w numerze #187. Dużą część problemu stanowiła jedynie słaba wydajność skryptu ze względu na niezoptymalizowany kod.

Powiązane problemy