2013-07-10 3 views
0

J'ai un problème avec omnicppcomplete avec vim. En fait, je ne suis pas sûr si c'est un problème .vimrc ou un problème omnicppcomplete. Dans mon .vimrc, j'ai cette commande pour générer des balises pour mon projet quand je frappe ctrl + F12:Erreur de mappage de clé Vim

map <C-F12> :!ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q .<CR> 

Mais il échoue avec cette erreur:

ctags: Unknown option: --c++-n 

shell returned 1 

Il me semble très étrange parce que Je n'utilise pas l'option --C++ - n dans la commande. Ce qui est encore plus étrange pour moi est que si je viens de lancer la commande manuellement dans mon terminal

ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q 

Il génère un fichier de balises et tout semble fonctionner très bien. Donc, quelque chose à propos de la cartographie à une clé est en train de tout gâcher. J'ai suivi les instructions sur le wiki ici: http://vim.wikia.com/wiki/C%2B%2B_code_completion.

Je suis surtout confus au sujet de pourquoi il se plaint de --C++ - n quand je ne l'utilise pas. Toute aide est très appréciée.

EDIT:

deux ": qui ctags" dans vim et "qui ctags" dans le retour du shell "/ usr/bin/ctags". Cependant, quand je fais "ls/usr/bin | grep ctags", il retourne à la fois "ctags" et "ctags-exuberant".

J'ai retiré et réinstallé le ctags-exubérant. Maintenant quand j'essaye de frapper c-F12 dans vim, ça ne me donne pas une erreur sur la commande ... ça me ramène au shell pour appuyer sur Entrée pour continuer, mais dans le code quand je frappe un point après un objet, il dit toujours "Motif non trouvé".

Cependant, si je fais un petit fichier de test comme celui-ci dans un répertoire distinct:

struct MyStruct { 
    int a; 
    int b; 
    int long_name; 
}; 

int main(int argc, char** argv) { 

    MyStruct a; 
    a.  
} 

Hit c-F12 pour construire le taglist, les œuvres auto-complétion très bien ... Je veux qu'il travailler si j'ai une classe qui est définie dans un autre fichier (toujours dans le même répertoire).

Répondre

1

J'ai réinstallé des ctags exubérants et le problème a été résolu.

4

Le problème n'est pas le mappage de touches. Si je copie ma ligne de mappage sur mon .vimrc et que j'appuie sur ctrl-f12 dans gvim, elle renvoie la commande qu'elle exécute et c'est exactement la commande ci-dessus.

Se pourrait-il que dans vim, ctags soit un autre fichier/exécutable pour vous? Que dit :!which ctags dans vim et que dit which ctags du shell?

+1

ma conjecture serait exubérante ctags vs ctags normaux – FDinoff

+0

Merci pour les commentaires. J'ai mis à jour ma réponse en fonction de ce que vous avez demandé. – Sterling