View previous topic :: View next topic |
Author |
Message |
musv Advocate
Joined: 01 Dec 2002 Posts: 3337 Location: de
|
Posted: Sun Jan 13, 2013 9:12 am Post subject: CTags für Vim bauen / Omnicpp: Wie? |
|
|
Guten Morgen,
momentan bastel ich gerade daran, Vim in eine brauchbare IDE umzuwandeln. Dazu hab ich mir Omnicpp installiert. Meine /etc/vim/vimrc.local sieht so aus (Omnicpp-Bereich):
Code: | set nocp "VI-Kompatbilität deaktivieren
set number "Zeilennummern anzeigen
syntax on "Syntax-Highlighting Defaultfarben
" --- OmniCppComplete ---
" auto close options when exiting insert mode
au CursorMovedI,InsertLeave * if pumvisible() == 0|silent! pclose|endif
set completeopt=menu,menuone,longest,preview
let OmniCpp_NamespaceSearch = 2 " search namespaces in this and included files
let OmniCpp_GlobalScopeSearch = 1
let OmniCpp_ShowAccess = 1
let OmniCpp_ShowPrototypeInAbbr = 1 "Funktionsparameter anzeigen
let OmniCpp_MayCompleteDot = 1 " autocomplete with .
let OmniCpp_MayCompleteArrow = 1 " autocomplete with ->
let OmniCpp_MayCompleteScope = 1 " autocomplete with ::
let OmniCpp_SelectFirstItem = 2 " select first item (but don't insert)
" Tags einbinden
set tags+=/usr/share/vim/tags/tags |
So, und jetzt geht's daran, die Tags zu bauen. Das gestaltet sich etwas schwieriger. Der Befehl ist dafür:
Beispiel qt4: | ctags –R --c++-kinds=+p --fields=+iaS --extra=+q /usr/include/qt4 qt4 |
Will man die Tags für c++ haben, wird man immer darauf verwiesen, sich das stdc++-Paket zu ziehen und daraus die ctags zu bauen.
eix stdc++: | * sys-libs/libstdc++-v3
Available versions: (5) 3.3.6 (~)3.3.6-r1
{{multilib nls}}
Homepage: http://gcc.gnu.org/libstdc++/
Description: Compatibility package for running binaries linked against a pre gcc 3.4 libstdc++
* sys-libs/libstdc++-v3-bin
Available versions: *3.3.6^s
Homepage: http://gcc.gnu.org/libstdc++/
Description: Compatibility package for running binaries linked against a pre gcc 3.4 libstdc++
* virtual/libstdc++
Available versions: (3.3) 3.3
Description: Virtual for the GNU Standard C++ Library for <gcc-3.4 |
Ich wollte schon gern die ctags für gcc 4.7 haben, die ja zweifelsohne irgendwo in /usr/include enthalten sein müssen.
Ok, dann kam der Brute-Force-Ansatz:
Code: | ctags –R --c++-kinds=+p --fields=+iaS --extra=+q /usr/include/ tags |
Das erzeugt mir ein 3,8GB großes Tag-File mit allen Tags in /usr/include. Funktioniert auch prächtig. Sobald ich:
eintipp, wird mir im Vim eine ewig lange Auswahlliste angefangen mit Boost vorgegeben. Tipp ich dann cou ein, seh ich keine Ergebnisse mehr. std::cout scheint es nicht zu geben. Nein, das wurde nicht aus c++ entfernt.
Lange Rede, kurzer Sinn. Wie kann ich die ctags für c++ aus meiner aktuellen Gentoo-Installation generieren? |
|
Back to top |
|
|
firefly Watchman
Joined: 31 Oct 2002 Posts: 5181
|
Posted: Sun Jan 13, 2013 10:18 am Post subject: |
|
|
Der GCC liefert eine libstdc++ mit. Die pakete im portage sind nur compatibility pakete für progamme, welche mit dem gcc < 4.x compiliert wurden.
die liegen nicht unter /usr/include, sondern unter
Code: | /usr/lib64/gcc/x86_64-pc-linux-gnu/<version>/include |
was ein qlist gcc:4.7 dir verraten hätte... _________________ Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn. |
|
Back to top |
|
|
musv Advocate
Joined: 01 Dec 2002 Posts: 3337 Location: de
|
Posted: Sun Jan 13, 2013 7:35 pm Post subject: |
|
|
Hast natürlich recht. Hab ich dann auch gemacht. War trotzdem nicht der Bringer, denn da wurde dann auch java mit eingebunden, da ich gcc mit dem Java-Useflag compiliert hab. Ein paar andere Sachen waren ebenfalls noch mit drin, die mir nicht zugesagt haben.
Ich hab dann omnicppcomplete komplett runtergeschmissen und clang_complete + Supertab installiert. Sieht nach den ersten Tests nach dem aus, was ich gesucht hab. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|