Hallo, ich habe "youcompleteme" für VIM installiert und mir fehlen einige Funktionen (in Bezug auf "code-completion"). Die Konfiguration erfolgt durch die ".ycm_extra_conf.py"-Datei. Dort werden dann Verzeichnisse zu den benötigten Bibliotheken angegen: '-isystem', '/usr/include/' usw.. Wenn ich Objekte einer Klasse erzeuge (z.B. string str="blabla") und dann "str. " schreibe, dann tauchen nach dem Punkt in einem Extra-Menü alle dazugehörigen Funktionen auf (code-completion). Hier funktioniert aslo alles (OOP). Mein Problem: Keine code-completion bei strukturierter Programmierung. Wenn ich z.B. math.h inkludiere und dann auf fest definierte Konstanten zugreifen will (z.B. M_PI), dann werden hier die Namen nicht ergänzt. Ich schreibe also "M_ " und es taucht kein Menü mit allen möglichen Namen auf. Dabei hat doch math.h einiges im Angebot: # define M_E 2.7182818284590452354 /* e */ # define M_LOG2E 1.4426950408889634074 /* log_2 e */ # define M_LOG10E 0.43429448190325182765 /* log_10 e */ # define M_LN2 0.69314718055994530942 /* log_e 2 */ # define M_LN10 2.30258509299404568402 /* log_e 10 */ # define M_PI 3.14159265358979323846 /* pi */ # define M_PI_2 1.57079632679489661923 /* pi/2 */ # define M_PI_4 0.78539816339744830962 /* pi/4 */ # define M_1_PI 0.31830988618379067154 /* 1/pi */ # define M_2_PI 0.63661977236758134308 /* 2/pi */ # define M_2_SQRTPI 1.12837916709551257390 /* 2/sqrt(pi) */ # define M_SQRT2 1.41421356237309504880 /* sqrt(2) */ # define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */ Habe ich aber eine Konstante schon ein mal in meinem Quelcode verwendet, so wird sie auch im "code-completion"-Menü auftauchen. Dann geht es plötzlich. Aber warum wird denn nicht nach allen passenden Namen in allen inkludierten Datein gesucht?
Ich habe jetzt Code::Blocks ausprobiert. Wenn ich z.B. sowas schreibe #include <iostream> #include <cmath> using namespace std; int main() { cout<<"PI:"<<M_PI<<endl; return 0; } und dort in der "cout"-Zeile "M_P " eingebe, dann funktioniert code-completion einwandrei und es werden die Namen "M_PI, M_PI_2, M_PI_4" vorgeschlagen. Und genau das macht "youcompleteme" bei mir unter Vim nicht.
Diese Autovervollständigung kann bei YCM mit Strg+Space Kombinaton erzwungen werden ;-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.