2009-05-18 3 views
0

Gibt es eine Möglichkeit, vim zu veranlassen, die Argumente einer Funktion einzufügen, nachdem sie über omnifunc ausgewählt wurde (oder zumindest nach der Auswahl angezeigt wird, , aber nicht vor)? Etwas wie:Wie bekomme ich den func-Prototyp, nachdem ich die Funktion via omnicppcomplete ausgewählt habe?

myObject.play (int Zeit, std :: string foo)

Vielleicht sogar Sie durch die Argumente Registerkarte können wie das, was diese Schnipsel-Plugins können Sie tun.

Gibt es ein solches Plugin oder Feature? Ich denke, das ist sehr nützlich.

BTW, omnifunc's Vorschau-Option ist sehr langsam und wird nicht angezeigt, nachdem Sie eine Funktion ausgewählt haben.

+0

Ich habe gerade ein Plugin, das tut, was ich suche: http://www.vim.org/scripts/script. php? script_id = 2535 – user14437

+0

Ich frage mich, ob es andere Skripte wie folgt gibt? – user14437

Antwort

-1

könnten Sie die snippetsEMU plugin von der vim Website erhalten dann eine benutzerdefinierte Snippet für diese Funktion wie folgt ein:

:Snippet play myObject.play(int <{time}>, <{std::string}> <{foo}>)<{}>
Auf diese Weise alles, was Sie tun müssen, ist Art Spiel und drücken Sie die Tab-Taste, um es die geschweiften Klammern erweitert ermöglicht es Ihnen, durch die Argumente zu navigieren. Hoffe, das ist, was Sie suchen ...

+0

Danke, aber ich habe eine riesige Codebasis und es ist unrealistisch, weiterhin Snippets für jede Funktion zu erstellen. – user14437

+0

Ich kenne das Gefühl, es ist schrecklich langsam: - \ – bsisco

+0

@emergence: Es könnte möglich sein, Ctags (oder etwas ähnliches) auf der Codebasis zu verwenden und dann die Ausgabe mit einem Skript munge, um die notwendigen Schnipsel zu erstellen. Aber ich habe keine Erfahrung, wie das SnippetsEMU-Plugin mehrere Tausende dieser Schnipsel handhaben würde, was ich von einer großen Codebasis erwarten würde ... – user55400

1

Versuchen Sie code_complete.

Es verwendet Ctags, um eine Funktionssignatur abzuschließen, und ermöglicht es Ihnen, durch die Liste der Argumente zu blättern. Es kann andere Sachen vervollständigt auch - Standard-Header-Dateien, for()/switch() Blöcke usw.

Verwandte Themen