VIM + youcompleteme

Gast #5641016
Lesenswert?
• ▲
▼
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?
Gast #5641066
Lesenswert?
• ▲
▼
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.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.