Większość edytorów ma taką funkcję, że kiedy naciskasz niektóre klawisze, umieszczając kursor nad funkcją, wyświetla dokumentację tej funkcji wraz z liczbą i typem argumentów, które ta funkcja przyjmuje.
Zastanawiałem się, czy Vim oferuje takie wsparcie. Na przykład, podczas kodowania w C, używam wbudowanej funkcji qsort()
. Ponieważ nie jestem pewien co do rodzaju i liczby argumentów, które chciałbym wziąć, chciałbym to wiedzieć bez ucieczki przed Vimem. Czy to możliwe?
autocompletion
sherelock
źródło
źródło
'keywordprg'
(nazwa programu, który może obsługiwać dokumentację dla wybranego języka), to uderzającK
w słowo kluczowe (które może być nazwą funkcja), powinieneś uzyskać potrzebne informacje. Na przykład, jeśli zainstalujeszcppman
( github.com/aitjcize/cppman ) i dodasz autocmd do vimrc, na przykładautocmd FileType cpp setlocal keywordprg=cppman
, tocppman
powinien obsłużyć dokumentację w buforze c ++. Jednak nie przetestowane.cppman
jest to doskonała sugestia, jeśli masz zainstalowane strony C i C ++ (manpages-posix-dev
ilibstdc++-X.Y-doc
pakiety w systemach opartych na Debianie), zwykłe stareman
powinny działać.Odpowiedzi:
Jeśli możesz skonfigurować YouCompleteMe , obsługuje C, C ++, JavaScript, Go i kilka innych języków. Oto w akcji:
Jest trochę denerwujący w instalacji , a po zainstalowaniu należy go skonfigurować dla C i C ++ , tworząc plik
.ycm_extra_conf.py
. Podniosłem jedną z tego repo i uzyskałem ten efekt.źródło
qsort(a
, okno wyskakujące znika, co utrudnia zapamiętanie kolejnych argumentów.YcmCompleter GoTo
, których często używam w Pythonie, jest to , że zwykle wysyła cię tam, gdzie funkcja / klasa została zdefiniowana w kodzie. To jest linia tuż nad linkiem, który zawiera wszystko, o co prosiłeś. Nie jestem pewien, czy wbudowane komentarze są w tym samym miejscu w C / Java / C ++.W przypadku C naciśnięcie
K
słowa kluczowego spowoduje bezpośrednie wyświetlenie wbudowanej strony podręcznika. Na przykład umieść kursor naprintf
słowie kluczowym:Teraz naciśnij
K
(wielkie litery K), a strona podręcznika dlaprintf
powinna pojawić się w VIM:Wydaje się, że działa to od razu po rozpakowaniu wszystkich dystrybucji wywodzących się z Debiana, na których wypróbowałem, nie jest wymagana żadna konkretna konfiguracja.
źródło
printf(1)
polecenia, a nieprintf(3)
funkcja. W każdym razie strony podręcznika funkcji C pochodzą zmanpages-dev
, które zwykle są instalowane domyślnie, ale nie zawsze, a funkcje POSIX sąmanpages-posix-dev
- zwykle nie są instalowane domyślnie, podobnie jak dokumentacja C ++ (libstdc++-X.Y-doc
).Jeśli potrzebujesz odpowiedniej dokumentacji , wtyczka w komentarzu saginaw wydaje się zaspokajać twoje potrzeby w C ++. Nie znam ogólnego, ale prawdopodobnie możesz znaleźć alternatywy dla innych języków na vim.org.
Gdyby…
możesz użyć
<C-w>}
do otwarcia definicji słowa kluczowego pod kursorem w oknie podglądu. Oczywiście YMMV.Zobacz
:help preview-window
,:help tags
a:help ctags
.Możesz także skorzystać z wbudowanej funkcji Vima „włącz-szukaj”: naciśnij,
[i
aby wydrukować „podpis” słowa pod kursorem w wierszu poleceń:Zobaczyć
:help include-search
.źródło
[i
jest dziwne. Działa dlastdlib.h
iqsort
, ale niecstdlib
istd::qsort
lub tylkoqsort
.<C-w>
oznacza,CTRL-W
która jest nomenklatura używana w:help
plikach. Następnie możesz użyć:pc
do zamknięcia okna podglądu.Typ pliku C / C ++ Vima jest wyposażony w przyzwoitą funkcję omnicomplet, która obsługuje funkcję „podglądu”. Dodaj więc „podgląd” do opcji completeeopt i zobacz podpis funkcji po zakończeniu trybu wstawiania.
W trybie normalnym można CTRL + W} ręcznie otworzyć deklarację funkcji w oknie podglądu.
źródło
Jak wspomniano, naciśnięcie
K
tego słowa kluczowego polega na przeszukaniu strony podręcznika man. Aby uzyskać strony podręcznika C ++, możesz spróbować https://github.com/aitjcize/cppman (dostaje „strony podręcznika” z cplusplus.com i cppreference.com).źródło
Zainstaluj YouCompleteMe. Po umieszczeniu kursora nad identyfikatorem wprowadź
YcmCompleter GetDoc
polecenie, aby wyświetlić dokument w małym oknie podglądu na dole. Działa w wielu językach, takich jak Python i c / c ++.Youcompleteme wyświetla także okno podglądu podczas funkcji autouzupełniania. Możesz dostosować zachowanie podglądu dokumentu za pomocą
g:ycm_autoclose_preview_window_after_completion
zmiennej.źródło