Die meisten Editoren verfügen über eine Funktion wie das Drücken einiger Tasten durch Platzieren von Einfügemarke über einer Funktion. Sie zeigt die Dokumentation dieser Funktion zusammen mit der Anzahl und dem Typ der Argumente an, die die Funktion annimmt.
Ich habe mich gefragt, ob Vim solche Unterstützung bietet. Zum Beispiel verwende ich beim Codieren in C eine eingebaute Funktion qsort()
. Da ich mir über Art und Anzahl der Argumente nicht sicher bin, würde ich es gerne wissen, ohne Vim zu entkommen. Ist es möglich?
autocompletion
Sherelock
quelle
quelle
'keywordprg'
(den Namen eines Programms, das die Dokumentation für die gewünschte Sprache verarbeiten kann), dann klicken SieK
auf ein Schlüsselwort (das der Name sein kann) eine Funktion), sollten Sie die gewünschten Informationen erhalten. Wenn Sie zum Beispielcppman
( github.com/aitjcize/cppman ) installieren und eine autocmd in Ihrem vimrc wie hinzufügenautocmd FileType cpp setlocal keywordprg=cppman
,cppman
sollte die Dokumentation in einem c ++ - Puffer behandelt werden. Nicht getestet.cppman
ist ein ausgezeichneter Vorschlag. Wenn Sie die C- und C ++ - Hilfeseiten (manpages-posix-dev
undlibstdc++-X.Y-doc
Pakete auf Debian-basierten Systemen) installiert haben, sollte plain oldman
funktionieren.Antworten:
Wenn Sie YouCompleteMe einrichten können , werden C, C ++, JavaScript, Go und einige andere Sprachen unterstützt. Hier ist es in Aktion:
Die Installation ist etwas ärgerlich , und sobald sie installiert ist, müssen Sie sie für C und C ++ konfigurieren, indem Sie eine erstellen
.ycm_extra_conf.py
. Ich habe einen aus diesem Repo genommen und diesen Effekt erzielt .quelle
qsort(a
, wird das Popup-Fenster ausgeblendet, sodass Sie sich nur schwer an die nächsten Argumente erinnern können.YcmCompleter GoTo
, dass Sie normalerweise dorthin geschickt werden , wo die Funktion / Klasse im Code definiert wurde. Das ist die Zeile direkt über der Dokumentenkette, in der alles aufgeführt ist, wonach Sie gefragt haben. Ich bin mir nicht sicher, ob sich der Inline-Kommentar in C / Java / C ++ an derselben Stelle befindet.Wenn Sie für C
K
auf das Schlüsselwort drücken, wird die integrierte Hilfeseite direkt aufgerufen. Stellen Sie den Cursor beispielsweise auf dasprintf
Schlüsselwort:Drücken Sie nun
K
(Großbuchstabe K) und die Manpage fürprintf
sollte in VIM erscheinen:Dies scheint in allen von Debian abgeleiteten Distributionen, auf denen ich es ausprobiert habe, ohne spezielle Konfiguration zu funktionieren.
quelle
printf(1)
Befehls, nichtprintf(3)
die Funktion. In jedem Fall stammen die C-Funktions-Hilfeseiten vonmanpages-dev
, die normalerweise standardmäßig installiert sind, jedoch nicht immer, und POSIX-Funktionen sind enthaltenmanpages-posix-dev
- normalerweise nicht standardmäßig installiert, ebenso wenig wie die C ++ - Dokumentation (libstdc++-X.Y-doc
).Wenn Sie eine ordnungsgemäße Dokumentation wünschen, scheint das Plugin in saginaws Kommentar Ihre C ++ - Anforderungen zu erfüllen. Ich kenne keine generische, aber Sie können wahrscheinlich Alternativen für andere Sprachen auf vim.org finden.
Wenn…
Mit können Sie
<C-w>}
die Definition des Schlüsselworts unter Ihrem Cursor in einem Vorschaufenster öffnen. YMMV natürlich.Siehe
:help preview-window
,:help tags
und:help ctags
.Sie können auch die integrierte "Include-Search" -Funktion von Vim verwenden: Drücken Sie
[i
, um die "Signatur" des Wortes unter dem Cursor in der Befehlszeile auszudrucken:Sehen
:help include-search
.quelle
[i
ist komisch. Es funktioniert fürstdlib.h
undqsort
, aber nichtcstdlib
undstd::qsort
oder nurqsort
.<C-w>
bedeutetCTRL-W
das , welche Nomenklatur in den:help
Akten verwendet wird. Anschließend können Sie:pc
das Vorschaufenster mit schließen.Der C / C ++ - Dateityp von Vim verfügt über eine anständige Omnicompletion-Funktion, die die "Vorschau" -Funktion unterstützt. Fügen Sie also "Vorschau" zu Ihrer Option completeopt hinzu und sehen Sie eine Funktionssignatur, wenn Sie den Einfügemodus abschließen.
Im normalen Modus können Sie STRG + W} drücken, um die Funktionsdeklaration im Vorschaufenster manuell zu öffnen.
quelle
Wie bereits erwähnt,
K
funktioniert das Drücken auf das Schlüsselwort durch Durchsuchen einer Manpage. Zum Abrufen von C ++ - Manpages können Sie https://github.com/aitjcize/cppman verwenden (es werden "Manpages" von cplusplus.com und cppreference.com abgerufen).quelle
Installieren Sie YouCompleteMe. Wenn Sie den Mauszeiger über einen Bezeichner bewegen, geben Sie den
YcmCompleter GetDoc
Befehl ein, um das Dokument in einem kleinen Vorschaufenster unten anzuzeigen. Es funktioniert in vielen Sprachen wie Python und C / C ++.Youcompleteme zeigt auch das Vorschaufenster während der automatischen Vervollständigung an. Sie können das Verhalten der Dokumentvorschau mit einer
g:ycm_autoclose_preview_window_after_completion
Variablen anpassen .quelle