ctags generierung funktioniert nicht?
-
Guten abend,
ich versuche gerade die Code Complention in Vim zum laufen zu bekommen. Dafür folge ich diesem Tutorial: http://design.liberta.co.za/articles/code-completion-intellisense-for-cpp-in-vim-with-omnicppcomplete/
Mein Problem.
Wenn ich im Ordner der heruntergeladenen STL bin und ctags anschmeiße um die "tags"-file zu generieren, nimmt er den Befehl nicht an.
$ ctags -R --c++-kinds=+p --fields=+iaS --extra=+q ./
Sobald ich das ausführe kommt:
usage: ctags [flags] filenames... -Dword Ignore "word" -- handy for parameter macro name -F Use /regexp/ (default) -B Use ?regexp? instead of /regexp/ -N Use line numbers instead of /regexp/ -g Store static tags as though they were global (implies -h -s) -s Include static tags -e Include extern tags -i Include inline definitions -t Include typedefs -v Include variable declarations -h Add hints to help elvis distinguish between overloaded tags -l Add a "ln" line number hint (implies -h) -p Write parse info to stdout (for debugging ctags) -d Warn about duplicates, on stdout -x Write cross-reference table to stdout; skip "tags" -r Write a "refs" file, in addition to "tags" -a Append to "tags", instead of overwriting If no flags are given, ctags assumes it
should use -l -i -s -t -v
Report bugs to kirkenda@cs.pdx.eduIrgendwie scheint es so, als würde er die flags gar nicht annehmen von dem Befehl? Aber warum? Das ist jetzt schon das zweite Tutorial zu diesem Thema und immer scheitere ich genau an der Stelle.
Leider habe ich auch nicht die Erfahrung, um das selber zu beheben.
Hat hier jemand einen Tipp für mich?
Viele Grüße
Bernhard.
-
Du hast das falsche ctags paket installiert.
-
Wenn es dir um Completion von C oder C++ geht, würde ich nicht mehr auf den Ctags-Ansatz zurückgreifen. Da gibt es mittlerweile weitaus bessere Möglichkeiten. Die bestehen z.B. darin einen richtigen Compiler für die Completion-Informationen zu nutzen. Clang bietet sich da an (geht auch mit GCC, siehe GCCSense, aber Clang ist von der Architektur deutlich besser für sowas geeignet).
Gibt ein fertiges Vim-Plugin (clang_complete[1]) dafür. Benötigt lediglich eine halbwegs aktuelle Installation von Clang/LLVM. Libclang.so sollte sich im Library-Suchpfad befinden, den Aufruf der clang-Binary unterstützen aktuelle Versionen nicht mehr.
Außerdem muss Vim mit Python-Support kompiliert sein. Bei den meisten Distributionen gibt es verschiedene Vim-Pakete (-minimal, -enhanced, -X11, usw.), nicht jedes ist mit Python-Support gebaut. Einfach das passende installieren.
Funktioniert super, ohne Tags-Frickelei. Bietet neben reiner Completion auch noch ein paar andere Features, die über die Konfiguration aktiviert werden können und teilweise experimentell sind.
Überreste von Omnicppcomplete unbedingt entfernen, die Plugins sind inkompatibel zueinander.