Auto-complétion
Ctrl+p sous vim.
Non, non, et non. L'autocompletion est un des points noirs de vim. Et ce pour plusieurs raisons:
1. C'est horriblement lent dès que l'on est pas dans la completion de mots des buffers ou de chemins (XF FYI).
2. On ne peut pas avoir plusieurs plugins qui alimentent le buffer de completion en même temps, il faut créer un faux-plugin wrapper pour cela (neocomplete + neosnippet + neocomplcache, oubliez clang-complete, snipmate, ou autre).
3. Elle n'est pas intelligente. Clang-complete fait un début de completion intelligente pour un cas précis (méthodes et attributs), mais ça n'a rien à voir avec une completion qui prend en compte le type, la sémantique probable, etc. Ce que sait faire un bon IDE.
4. Interruption du flot d'écriture. Si la completion est bien faite (hommage à ReSharper et InteliJ Idea), elle ne doit pas interrompre trop le flux d'ecoulement des doigts sur le clavier. Celle de Vim en est douloureuse, mais c'est un héritage à assumer.
Oui, la complétion est loin d'être parfaite, je le reconnais volontiers, mais elle me suffit. De mon expérience perso, taper les 3-4 premiers caractères suffit à me trouver une seule occurrence, au pire 2-3.
:Man not an editor command. J'assume que tu parles de Man.vim. Tu savais qu'il existe K pour ça ? (EDIT: c'est pour un afichage en pop-up OK)
À part ça, dans un gros ou moyen projet, le fait de ne pas pouvoir voir la doc autrement qu'avec ], c'est souvent gênant. Et encore, il faut avoir généré le tagfile idoine, et qu'il soit dans le tagpath de vim.
Pour la doc sur mon propre projet, j'utilise cscope. Cf. ma réponse au message précédent.
Le :make -> amené à la ligne fautive -> correction -> :make -> … est très efficace également.
Non. Il l'est dans ton cas. Les problèmes de :make sont:
Oui, je parle de mon expérience perso de développeur C. Ce n'est pas forcément transposable au C++, au Java ou <insérer votre langage préféré ici>
Make est lent de base. Si ton projet est un peu gros et en C++, avec des templates, avec CXX=g++, tu as perdu.
make n'est pas responsable, ça dépend ce que tu en fais. J'utilise des Makefile générés par les autotools. Ils gèrent les dépendances et donc ne regénèrent que ce qui est nécessaire. C'est très rapide pour mon usage.
Surtout si certains de tes fichiers sont générés par un soft externe (eg: flex, bison, swig, doxygen, script de rapatriement perso)
Si tu interviens sur le template et que la génération est plutôt lente, oui. Mais ce n'est pas le cas général. Ce qui arrive le plus souvent, c'est le renommage d'une variable ou fonction ou bien un changement de signature. Ma méthode est bcp moins fine que celle d'un IDE plus évolué, elle ne fonctionnerait pas avec un langage plus dynamique que le C comme le Python.
:make met vim en pause ! Tu ne peux pas travailler pendant que ça compile en background.
C'est tellement rapide que j'aurais bien du mal à faire qq chose d'autre pendant ce temps ! J'ai tout juste le temps de jeter un oeil à l'openspace autour ;-)
:make pour du C# ? Pour du Java ? Pour du Qt ?
Comme précisé dans un message plus bas, :make peut appeler n'importe quelle commande et pas seulement make. Le nom est historique je suppose.
Bref, je m'arrête là. J'ai aussi une nette préférence pour Vim lorsque je code en C. Mais en C++ je sors KDevelop avant que les choses ne dégénèrent. ;)
Je ne commenterai pas pour le cas du C++, je n'y touche pas ;-)
[^] # Re: On peut toujours creuser un trou à mains nues...
Posté par Didier . En réponse au journal Point de vue : un IDE est il un outil de programmation indispensable ?. Évalué à -2.
Oui, la complétion est loin d'être parfaite, je le reconnais volontiers, mais elle me suffit. De mon expérience perso, taper les 3-4 premiers caractères suffit à me trouver une seule occurrence, au pire 2-3.
Pour la doc sur mon propre projet, j'utilise cscope. Cf. ma réponse au message précédent.
Oui, je parle de mon expérience perso de développeur C. Ce n'est pas forcément transposable au C++, au Java ou <insérer votre langage préféré ici>
make n'est pas responsable, ça dépend ce que tu en fais. J'utilise des Makefile générés par les autotools. Ils gèrent les dépendances et donc ne regénèrent que ce qui est nécessaire. C'est très rapide pour mon usage.
Si tu interviens sur le template et que la génération est plutôt lente, oui. Mais ce n'est pas le cas général. Ce qui arrive le plus souvent, c'est le renommage d'une variable ou fonction ou bien un changement de signature. Ma méthode est bcp moins fine que celle d'un IDE plus évolué, elle ne fonctionnerait pas avec un langage plus dynamique que le C comme le Python.
C'est tellement rapide que j'aurais bien du mal à faire qq chose d'autre pendant ce temps ! J'ai tout juste le temps de jeter un oeil à l'openspace autour ;-)
Comme précisé dans un message plus bas, :make peut appeler n'importe quelle commande et pas seulement make. Le nom est historique je suppose.
Je ne commenterai pas pour le cas du C++, je n'y touche pas ;-)