131 votes

Configurer Vim pour C++

Je voudrais faire de vim mon éditeur C++. J'ai très peu d'expérience de travail avec lui et j'ai besoin d'aide pour configurer vim pour travailler avec le C++. J'ai besoin de fonctionnalités telles que

  • auto-complétion du code (pour stl et pour mes classes)
  • passage entre les fichiers .cc et .h
  • peut-être quelques astuces de plus que vous, les gourous du C++ et de vim, possédez.

Peut-être pourriez-vous fournir quelques configurations (avec explications), ou des liens vers des tutoriels, des plugins dont je pourrais faire usage?

9 votes

+1 pour le pur masochisme de vouloir utiliser vim comme votre IDE :) vim a ses utilisations (surtout pour éditer des fichiers à distance dans mon expérience), mais quiconque veut l'utiliser pour l'édition de code a du cran à mon avis.

43 votes

@sgolodetz : Alors, il y a pas mal de personnes avec du culot là-bas.

2 votes

@Jefromi : Yup, je m'en rends compte :) Cela a toujours semblé être du masochisme pour moi cependant... d'une manière légèrement admirable.

153voto

Thanh DK Points 1142

Modifié en juillet 2013

0 votes

J'ai corrigé le lien vers mon ensemble de plugins C&C++. Merci pour la "publicité" :)

0 votes

Aussi, je peux recommander le plugin FSwitch à la place du plugin A.

1 votes

Le lhCpp de Luc est incompatible avec vundle (je pense en raison du dépôt svn) et aucun processus d'installation ne me plaît personnellement - je recommande de consulter github.com/Raimondi/delimitMate

11voto

icecrime Points 23650

J'utilise vim comme éditeur C++, cependant je n'utilise pas beaucoup de choses 'exotiques'.

  • En ce qui concerne l'auto-complétion, j'utilise les touches non-contextuelles ^P et ^N.

  • J'ai toute une série d'abréviations définies par l'utilisateur pour mon utilisation en C++, par exemple :

    abbreviate bptr boost::shared_ptr
    abbreviate cstr const std::string &
  • J'ai plusieurs fonctions pour des "extraits de code" comme par exemple :

    function! IncludeGuard()
      let basename = expand("%:t:r")
      let includeGuard = '__' . basename . '_h__'
      call append(0, "#ifndef " . includeGuard)
      call append(1, "#define " . includeGuard)
      call append(line("$"), "#endif /* !" . includeGuard . " */")
    endfunction
  • Le seul plugin dont je ne pourrais vraiment pas me passer est Command-T (qui nécessite le support de ruby)

  • Pour passer facilement de .cc à .h, vous pouvez essayer ce plugin

3voto

ThePosey Points 2046

NERDTree http://www.vim.org/scripts/script.php?script_id=1658

Exuberant ctags (vim already supports the hotkeys natively) http://ctags.sourceforge.net/

taglist: http://vim-taglist.sourceforge.net/

snipmate: http://www.vim.org/scripts/script.php?script_id=2540

I don't do omnicompletion just the usual ^n ^p stuff but there are plenty of resources to google for.

1voto

Luc Hermitte Points 14171

J'ai donné cette réponse qui était initialement limitée au développement en C. Cependant, tout ce que j'ai dit est toujours valable pour le C++.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X