11

Próbuję osiągnąć coś prostego, zwykle nazywanego "podpowiedziami funkcji". Na przykład, redaktorzy Scintilla oparte mieć go:Wskazówki dotyczące funkcji Vima dla C

enter image description here

wpisać nazwę, a po prostu prototyp. Istnieje kilka problemów z że w vim:

  • Trzeba odbudować ctags zachować go na bieżąco
  • Nie można wpisać CX CO po(, będziesz po prostu " wzór nie znaleziono”
  • nie można wpisać CX cO w trybie normalnym, kursor po prostu skakać
  • dostać irytujące okno podglądu na najwyższym

Próbowałem fe w wtyczki; większość z nich bałagan jeszcze bardziej [^ 1]. Czy ktoś może polecić prosty sposób, aby to osiągnąć? Prosty prostokąt zawierający prototyp funkcji i nic więcej.

[^ 1] To naprawdę oszałamiające, jak idiotyczne są niektóre z tych wtyczek. Jedna wtyczka (nie wspomnę o tym) faktycznie zawierała w pliku .vim listę funkcji z biblioteki libc.

+1

* Jedna wtyczka (nie będę o tym wspominać) faktycznie zawarta w pliku .vim lista funkcji z biblioteki libc *. Co z tym jest nie tak? Będziesz mieć gdzieś bazę danych, prawda? Czy też problem polega na tym, że DB nie jest przechowywany w tajnym, nieczytelnym, zastrzeżonym formacie? – eckes

+0

@eckes Ta wtyczka używa już ctags. – user1497069

+0

:-) ok. To zły pomysł. – eckes

Odpowiedz

0

Spróbuj użyć eclim (wtyczka do integracji z Eclipse).

To rozwiązanie jest bardzo sprawne, ale działa we wszystkich przypadkach.

8

ctags do autouzupełniania to bałagan. Sugeruję wypróbowanie wtyczki opartej na kompilatorze, takiej jak clang-complete lub gcc-sense (nie próbowałem tego). Zalety to:

  • bardziej dokładność jak to co robią jest dość dużo kompilacji
  • błędy kompilacji są zaznaczone w locie nad kodem źródłowym

Trzeba odbudować ctags go zatrzymać aktualne

nie trzeba radzić sobie z ctags (są nadal użyteczne skakać chociaż)

Nie można wpisać C-X-C o Po "nie znaleziono Wzór" przycisk (będziesz po prostu

czego można się spodziewać?

Nie można wpisać CX CO w trybie normalnym, kursor po prostu skakać

zawsze można przemapować tej sekwencji, jeśli uważasz, że jest to częsty błąd (coś jak nnoremap <C-x><C-o> a<C-x><C-o>)

dostać irytujące okno podglądu w prawym górnym

Funkcję tę można wyłączyć poprzez usunięcie preview z opcji completeopt. zobacz :help completeopt

używam następującą konfigurację:

here

a niektóre vimrc:

set pumheight=10    " so the complete menu doesn't get too big 
set completeopt=menu,longest " menu, menuone, longest and preview 
let g:SuperTabDefaultCompletionType='context' 
let g:clang_complete_auto=0 " I can start the autocompletion myself, thanks.. 
let g:clang_snippets=1  " use a snippet engine for placeholders 
let g:clang_snippets_engine='ultisnips' 
let g:clang_auto_select=2 " automatically select and insert the first match 

Enjoy!