Projet C avec VIM

De Ensiwiki
Aller à : navigation, rechercher

Plugins C

  • TagList : pour avoir une liste de tags (et ainsi retrouver les fonctions cachées / mal documentées des profs).

Une manière plus orthodoxe d'avoir les tags (sous zsh pour l'expansion des méta-caractères)~:
$ ctags **/*
$ vim
se tags=./tags

Il faut alors faire <Ctrl-]> pour aller à la définition de la "chose" sous le curseur (ou CTRL+clic sur une variable / fonction) et <Ctrl-T> pour en revenir.

Configuration

La configuration de vim se fait avec un fichier ~/.vimrc (pour mémoire "~" représente le répertoire racine. Les configurations utiles pour l'édition du C sont typiquement l'indentation automatique et la coloration des mots clefs. Une partie de mon ~/.vimrc potentiellement utile :

se nocompatible "Pas de compatibilité complète avec le vi de base
se noshowmatch  "Ne montre pas les ({[ correspondantes, cela m'énerve
se nohls        "Ne colorie pas le pattern recherché, ca me crispe aussi
se sw=3         "Indentation de 3 blancs
"Indentation automatique type C mise en route lors du chargement du fichier
au BufNewFile,BufRead *.c,*.cc,*.cpp,*.h        se cindent
"Remplace les tab par des blancs en C
au BufNewFile,BufRead *.c,*.cc,*.cpp,*.h      se expandtab
syntax on       "Coloration syntaxique
se visualbell   "Evite les biiiiiips

Par ailleurs, répeter la dernière commande se fait avec ., ce qui est peu pratique avec un clavier français. Une manière de remaper une touche est d'ajouter
map ; .
dans le .vimrc.

Pour trouver une accolade qui matche, il suffit de taper % lorsque le curseur est sur une accolade (ça place le curseur sur l'accolade correspondante automatiquement). (Il est possible de combiner ça avec les commandes classiques : d% supprime tout le contenu jusqu'à l'accolade / la parenthèse correspondante par exemple. De la même manière, en se plaçant sur l'accolade de début d'une fonction et en tapant =%, on réindente la fonction.) A noter, le % marche aussi pour repérer les #if/#else/#endif


Pour mémoire, <Ctrl-N> et <Ctrl-P> effectuent la complétion des identifiants, ce qui permet d'éviter les bourdes de frappe sur les noms de fonctions et variables.

Il existe un nombre d'options incroyable pour paramétrer l'éditeur, n'hésitez pas à demander aux profs adeptes de vim, genre Horrein et Pétrot.

Compiler / Tester

La compile se fait classiquement avec un Makefile. Si le Makefile est correct, il suffit de taper :make (ou :mak) sous vim pour compiler le programme. Pour se déplacer à la prochaine erreur/warning de compile, il suffit de faire :cn, et si la fébrilité vous à mené trop loin, :cp nous ramène à l'erreur précédente.


Pour tester, il est généralement plus pratique de repasser par le terminal : vim n'est pas un système d'exploitation mais un (voir le) éditeur de texte ! Il est toutefois possible de faire un :!./mon_programme pour lancer mon_programme depuis vim. On peut simplifier cette commande en ajoutant cette ligne à son .vimrc :

map <F6> :!./mon_programme

... de cette manière, en tapant F6 dans vim, on lance son programme automatiquement.

Trucs et astuces

  • Pour accèder à une page man sans sortir de vim, taper K quand votre curseur est sur le mot correspondant à la page man désirée.

Débugger

Exemple