Vim
De Ensiwiki.
| |
|---|---|
| Dernière version | 7.2
|
| Environnement | Windows, Linux, MacOSX
|
| Type | Editeur de code |
| Licence | Charityware
|
| Site Web | vim |
Sommaire |
Description
Vim est un éditeur de code. Son intérêt principal provient de son mode "commande", qui permet d'effectuer des opérations complexes en un minimum de temps. Il s'agit également d'un des rares éditeurs de code - avec Emacs - capable de proposer une édition intelligente (coloration, indentation, complétion, ...) de la quasi-totalité des langages de programmation utilisés à l'heure actuelle.
Pourquoi VIM ?
Vim nécessite un temps d'apprentissage important et un "minimum" de configuration avant d'être utilisable. Il est légitime de se demander pourquoi réapprendre à utiliser un éditeur de code (taper ":w" pour sauvegarder alors qu'on est habitué au CTRL+S peut sembler une perte de temps, à priori).
La réponse est simple : gagner en efficacité. Il est certains que dans vos premières semaines d'utilisation de Vim, vous aurez l'impression de mouliner et de perdre du temps à switcher en permanence entre mode commande et édition, mais une fois la dizaine de commande de base connues, à vous le pissage de code productif ! (Des exemple de la puissance de le VIM sont disponibles dans la suite...)
De plus : il est tout à fait possible d'utiliser les commandes "normales" (CTRL+S, CTRL+C/CTRL+V, ...) dans VIM. Ca n'est bien sûr pas recommandé, mais c'est bien pratique dans les premières semaines (mois ?) d'utilisation. Un fichier de configuration .vimrc "n00b-proof" est disponible dans la suite : utilisez le dans vos premières semaines en tentant de basculer de plus en plus vers les commandes de base de VIM...
Vim est également l'un des rares éditeurs à fonctionner aussi bien dans un shell (comme nano) que dans une interface graphique avancée (via gvim), ce qui le rend utilisable dans toutes les situations.
Autres avantages de VIM, en vrac : léger, souris fonctionnelle lors d'une édition en ligne de commande (contrairement à nano ou la plupart des éditeurs fonctionnant dans un shell), utilisable au sein de la plupart des grands IDE (eclipse, VS, ...), disponible partout (même quand on pirate un TX en root, c'est dire !), édition de fichier à distance en ssh, ...
VIM sucks ! Eclipse powwwa !
Je vois d'ici les fans d'Eclipse bondir et me reprocher de faire la pub d'un éditeur antique, sans fonctions de refactoring avancé, sans compilation inline, etc. Effectivement, en tant qu'IDE pour des langages modernes (Java, C#, ...), Vim c'est moyen. Mais, car il y a un mais : la puissance de VIM ne vient pas du logiciel en lui même, mais de ses "key bindings" et de son mode commande ! Et il est évidemment possible d'utiliser ce mode commande dans Eclipse et dans Visual Studio, avec les plugins adaptés ! Et là c'est le must : non seulement vous êtes dans un environnement de travail moderne, mais en plus vous utilisez le rapid-tapage productif de Vim. Apprendre les quelques commandes de VIM n'est donc pas perdu ! ([Troll] Contrairement à Emacs. [/Troll])
Plugins pour Eclipse :
- viPlugin : ajoute quelques fonctionnalités du mode commande de Vim dans Eclipse. Très incomplet (pas de folding (za), ...) et cher (15€). A éviter.
- Eclim : Eclim effectue le travail inverse de viPlugin : il apporte les fonctionnalités d'Eclipse à Vim ! Autrement dit, vous avez toutes les fonctionnalités de Vim + l'intellisense Java + refactoring avancé + ... Le site contient la liste détaillée des features et quelques screenshots.
Plugins pour Visual Studio :
- ViEmu : ajoute la plupart des raccourcis Vim à Visual Studio. Le plugin a été pensé pour être le plus fidèle possible à Vim. C'est globalement le cas, malgré quelques key-bindings manquants (CTRL+A sélectionne tout le code au lieu d'incrémenter le nombre suivant dans le document, CTRL+P imprime au lieu de faire de la complétion, le fonctionnement de l'undo est légèrement différent de celui de Vim... Bref, quelques détails.) Si vous êtes honnête, le plugin est cher par contre (99$).
Plugins pour Netbeans :
- jVi : très complet, très bien intégré et très configurable. Rien à redire.
Un Vim facile ?
Le mode commande de Vim peut être déroutant au début. Si vous voulez un éditeur similaire à gedit / nedit mais avec des fonctions avancées, utilisez la commande "evim". Evim, ou Easy Vim, c'est simplement Vim sans son mode commande. Vous bénéficiez donc de l'indentation automatique, de la coloration, de la complétion (CTRL+P), dans un éditeur qui est aussi facile d'utilisation qu'un bloc note (CTRL+S pour sauvegarder, etc.). Vous pouvez également utiliser le menu de l'éditeur pour accéder aux fonctions avancées de vim (enregistrement de macro, etc.) Une fois habitué à evim, tentez de passer à vim avec le vimrc pour débutant, vous gagnerez en productivité.
.vimrc pour commencer
Fichier de configuration de vim (.vimrc) permettant d'utiliser tous les raccourcis classiques du monde Windows (CTRL+S, CTRL+C, ...) et modifiant le comportement de certaines touches (BackSpace, ...).
Ceci dit, avec un .vimrc de ce type, vous vous retrouverez tout de même devant un éditeur tout moche, sans coloration syntaxique, sans indentation automatique, ... bref : sans rien. Qu'à cela ne tienne : voici un .vimrc minimal pour rendre Vim utilisable :
Les plugins essentiels
Avec la section précédente, vous commencez à avoir un éditeur pas trop mal : il colore bien, il indente bien, ... Ceci dit, il reste encore un peu obscur. Petite sélection de plugins essentiels, valable pour tous les languages, pour rendre Vim définitivement meilleur qu'un nedit ou un Notepad++ :
- minibufexpl : vim possède une navigation par onglet, mais il ne l'utilise pas par défaut. Par défaut tous les fichiers ouverts sont chargés dans des "buffers" (l'équivalent d'un onglet caché, avec partage des registres : par exemple si vous enregistrez une macro, elle sera utilisable par tous les fichiers ouverts dans les buffers). Le problème c'est que ces buffers n'apparaissent pas à l'écran, il est donc difficile de se retrouver dans les fichiers ouverts. Ce plugin ajoute une barre d'onglet supplémentaire permettant de parcourir tous les buffers :
Devenir productif
Maintenant vous avez un environnement de travail sympathique. A tout casser, ça vous a pris 15 minutes et vous avez un environnement qui correspond à vos premiers désirs. Maintenant il est temps de devenir efficace, ou du moins de comprendre comment taper un mot, autrement dit : apprendre les key-bindings de Vim. C'est souvent la partie qui donne sa mauvaise réputation à Vim et pourtant il n'y a en réalité que 4 ou 5 touches essentielles à apprendre. C'est en combinant ces touches que vous effectuerez des actions complexes.
Vim dans les projets de l'Ensimag
Si l'utilisation de nedit, gedit ou tout autre "text-editor" peut vous suffire pour les TP simples, leur utilisation est plus difficile à justifier pour les "gros" projets (projet C en 1A, projet spé en 2A, ...). Vim vous aide à structurer votre code et à retrouver les fonctions que vous aviez perdues / que les profs n'ont pas documentées, comme un vrai IDE.
Mais... Flemme de modifier vos .vimrc à la main ? Flemme de configurer VIM pour qu'il ponde la moitié du code ADA de votre compilateur à votre place ? Qu'à cela ne tienne, nous l'avons fait pour vous. Pour chaque projet vous aurez la liste de tout ce que Vim peut faire pour vous (intellisense - complétion intelligente -, indexation de toutes les fonctions obscures que les profs ont cachées dans des dossiers communs et bien plus encore !) et les fichiers et plugins à installer pour gagner en productivité.
- 1A :
- 2A : (Certaines de ces aides nécessitent d'avoir Vim 7.0 ou plus récent installé, recompilez le au besoin...)
Plugins par langage
Ces plugins sont disponibles sur le site de vim, dans la section scripts.
Le saviez-vous ?
- Vim est l'éditeur recommandé par GNAT : c'est l'éditeur qu'ils livrent par défaut avec leur developpers tools.


