Académique Documents
Professionnel Documents
Culture Documents
Vim : il s'agit d'une version amliore d'un des plus anciens diteurs en console, qui s'appellait "Vi" (prononcez les lettres en anglais "vi aille"). Vim (VI iMproved, version amliore de Vi) est largement rpandu et gnralement disponible par dfaut sur la plupart des OS bass sur Unix, comme Linux. Emacs : dvelopp par Richard Stallman, le fondateur du projet GNU dont je vous ai parl au dbut du cours, cet diteur concurrent a lui aussi bien des atouts. On le retrouve plus spcifiquement sous Linux et il est rarement install par dfaut (un petit apt-get suffit toutefois ). Il peut tre complt par toute une srie de plugins qui lui permettent de faire navigateur web, lecteur audio... Bref, c'est un peu un outil tout faire.
Sachez qu'il est courant que les gens adoptent l'un ou l'autre de ces diteurs et le dfendent bec et ongles. Choisir un diteur de texte sous Linux, c'est en fait un peu comme choisir une religion. Oui je sais, ils sont fous ces Linuxiens ! Oulah, c'est important alors ! Lequel choisir ?
En fait, rien ne vous empche d'apprendre utiliser les deux. Toutefois, ces logiciels sont tellement complets qu'il vous faudra du temps pour vous habituer chacun d'eux. Dans la pratique, on prend l'habitude d'en choisir un et de s'y tenir : il est donc rare de voir quelqu'un naviguer entre les deux.
D'ailleurs, vous devriez vous mettre en tte ds maintenant qu'il n'y en a pas un qui soit nul et l'autre gnial. Ce sont juste 2 conceptions un peu diffrentes de ce que doit tre un diteur de texte. Le meilleur conseil que je puisse vous donner est le suivant : choisissez d'utiliser le mme diteur que votre ami pro de Linux ou votre collgue de bureau. L'idal est d'avoir quelqu'un proximit qui peut rgulirement vous conseiller. Croyez-moi, s'il y a bien un conseil qui soit important dans ce
Je craignais cette question mais il fallait bien qu'elle tombe un jour... Pour ma part, je n'ai jamais eu l'occasion de prendre le temps d'apprendre utiliser Emacs. Le professeur qui m'a initi Linux tait un habitu de Vim (mais il n'a jamais dit de mal d'Emacs, je le jure, je le jure !). Je suis donc mon tour un habitu de Vim, et c'est lui que je vous prsenterai dans ce cours. Je ne suis toutefois pas sectaire, si quelqu'un rdige un bon tutoriel sur Emacs sur le Site du Zro, je serai ravi de vous inviter le lire lui aussi.
vimtutor
Si vous ne l'avez pas, installez le paquet vim-common. Mais normalement il devrait dj tre install. En fait, vimtutor lance simplement Vim en ouvrant un fichier d'aide prdfini. Cette introduction Vim est d'ailleurs en franais et est accessible tout le monde, aussi je vous invite l'essayer et la lire en complment de mon cours moi. Petit aperu : Code : Console - Slectionner
Vim est un diteur trs puissant qui a trop de commandes pour pouvoi toutes les expliquer dans un cours comme celui-ci, qui est conu pou dcrire suffisamment afin de vous permettre d'utiliser simplement Vi
Le temps requis pour suivre ce cours est d'environ 25 30 minutes, le temps que vous passerez exprimenter. Les commandes utilises les leons modifieront le texte. Faites une copie de ce fichier afin vous entraner dessus (si vous avez lanc "vimtutor" ceci est dj u copie).
Il est important de garder en tte que ce cours est conu pour appre par la pratique. Cela signifie que vous devez excuter les commande pour les apprendre correctement. Si vous vous contentez de lire le texte, vous oublierez les commandes !
Maintenant, vrifiez que votre clavier n'est PAS verouill en majusc et appuyez la touche j le nombre de fois suffisant pour que la le 1.1 remplisse compltement l'cran. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Il faut compter en gnral une bonne demi-heure pour faire le Vimtutor. Cela vous fait une bonne petite introduction Vim, mais gardez bien entendu l'esprit que les possibilits sont bien plus larges et que vous n'aurez pas tout vu la fin de sa lecture. Retour en haut
vim
On a connu plus sexy, mais bon, c'est un diteur de texte aprs tout
Vim est un programme un peu surprenant qui ne s'utilise pas comme la plupart des diteurs de texte que vous connaissez. Il m'a fallu un peu de temps pour m'y habituer et il vous en faudra aussi, mais le jeu en vaut la chandelle. Si on ne vous explique rien, vous risquez d'tre un peu perdus. Pire, vous aurez mme du mal sortir de Vim (ne rigolez pas, a m'est arriv la premire fois !). Voil ce qu'il faut savoir... et qu'on aurait d m'expliquer ds le dpart d'ailleurs. Vim possde 3 modes de travail diffrents :
Mode interactif : c'est le mode par dfaut par lequel vous commencez. En lanant Vim, vous tes donc en mode interactif. Dans ce mode, vous ne pouvez pas crire de texte (oui je sais, c'est le comble pour un diteur de texte !). N'essayez donc pas d'appuyer sur des lettres au hasard, car vous risquez de faire n'importe quoi ! Le mode interactif est un mode puissant qui permet de se dplacer dans le texte, supprimer une ligne, copier/coller du texte, aller une ligne prcise, annuler ses actions, etc. Chaque action peut tre dclenche en appuyant sur une touche du clavier (par exemple, on appuie sur "u" pour annuler la dernire action).
Mode insertion : a c'est le mode que vous connaissez ! Vous tapez du texte, et il s'insre l'endroit o le curseur se trouve. Magique ! Pour rentrer dans ce mode, il y a plusieurs possibilits. Une des plus courantes est d'appuyer sur la touche "i" (insertion). Pour en sortir, il faut appuyer sur la touche "Echap". Mode commande : ce mode permet de lancer des commandes telles que "quitter", "enregistrer", etc. Vous pouvez aussi l'utiliser pour activer des options de Vim (comme la coloration syntaxique, l'affichage du numro des lignes...), et vous pouvez mme envoyer des commandes au shell ( la console) telles que ls, locate, cp, etc. Pour activer ce mode, vous devez tre en mode interactif et appuyer sur la touche deuxpoints ":". Vous validez la commande avec la touche Entre et revenez alors au mode interactif.
Je rsume. Vim possde 3 modes : interactif, insertion et commande. Vous dmarrez en mode interactif. Le seul mode que vous connaissez et qui ne sera pas nouveau pour vous est le mode insertion. Les 2 autres modes (interactif et commande) vont vous surprendre un peu.
Pourquoi avoir fait autant de modes qui ont l'air si compliqus dans un diteur de texte ? Pourquoi n'y a-t-il pas de menus ? Et pourquoi ne pas utiliser plutt un diteur de texte graphique, c'est quand mme plus simple avec une souris !
Trop de questions la fois. Je vais essayer de vous rpondre simplement, et il va falloir me croire sur parole au dbut : si des
gens se sont amuss crer tous ces "modes" et tous ces raccourcis clavier, ce n'est pas juste pour le plaisir tortur de faire la mme chose qu'avec une souris et des menus mais avec un clavier. En fait, vous allez vite dcouvrir que vous pouvez faire des choses que vous ne souponniez pas avec un diteur de texte : supprimer le mot actuel, couper le texte du curseur jusqu' la fin de la ligne, coller 4 fois le texte qui se trouve dans le presse-papiers, sauter la ligne n453, sauter la dernire ligne, etc. Toutes ces choses-l se font au clavier et, pour la plupart d'entre elles, vous devrez retenir par cur quelle touche correspond quelle action. C'est un peu contraignant au dpart, mais imaginez que c'est comme apprendre taper 10 doigts au clavier comme un dactylo : au dbut, c'est dur, vous avez l'impression de ramer, d'aller moins vite qu'avant, mais petit petit vous gagnez en productivit, vous allez de plus en plus vite, et finalement vous vous demandez comment vous avez pu faire autant de temps sans connatre tout a.
gVim sous Vista Et pour ceux qui voudraient une interface graphique, sachez que Vim a t port sous Unity sous le nom gVim. Vous pouvez donc l'installer (mme si vous utilisez KDE hein) et le lancer, le fonctionnement est identique au Vim de la console. Il est mme disponible en version Windows, si c'est pas beau a ! Cette fentre affiche par dfaut des menus et une barre d'outils, comme un diteur de texte classique. Un habitu du Vim console aura plutt tendance utiliser les raccourcis clavier qui vont plus vite, bien entendu.
Retour en haut
L'ouverture de Vim
Pour le moment, si vous lancez Vim en tapant juste la commande sans paramtre : Code : Console - Slectionner
vim
... il s'ouvre sur un nouveau fichier vide comme ceci que vous avez dj vu :
(le texte d'introduction que vous voyez disparatra ds que vous crirez les premiers caractres)
Vous pouvez aussi ouvrir un fichier en rajoutant son nom en paramtre : Code : Console - Slectionner
vim nomdufichier
Si le fichier n'existe pas, il sera cr.
i : insrer du texte
Nous allons partir sur un fichier vide. Nous souhaitons commencer rentrer du texte (quoi de plus normal pour un diteur de texte aprs tout ?). Appuyez sur "i" (i minuscule). Vous basculez alors en mode insertion. Vous pouvez maintenant taper du texte :
Notez le message -- INSERT -- en bas de l'cran qui vous confirme que vous tes en mode insertion. Ecrivez quelques lignes comme moi, puis appuyez sur la touche Echap pour revenir au mode interactif (le mode normal dans lequel vous tiez au dpart). Le message -- INSERT -- disparat, et vous revoil en mode interactif.
Le dplacement
h, j, k, l : se dplacer dans tous les sens
En mode interactif, vous pouvez dplacer le curseur au sein du texte. Pour cela, on utilise les touches :
En image :
QUOIII ? C'est le comble ! On ne peut mme pas utiliser les flches du clavier pour se dplacer ?!
Si si, vous pouvez aussi les utiliser. Essayez, elles marchent. D'ailleurs, en mode insertion, c'est la seule chose qui marche.
:w : enregistrer le fichier
Pour enregistrer votre fichier, vous devez tre au pralable en mode interactif (appuyez sur Echap pour vous en assurer). Appuyez ensuite sur la touche deux-points (:) pour passer en mode commande, puis tapez w (write) suivi du nom du fichier. La commande doit s'afficher en bas.
Dans mon cas, j'ai donc tap :w monfichier (notez que j'aurais aussi bien pu donner une extension .txt mon fichier). Appuyez ensuite sur la touche Entre pour valider. Le bas de l'cran doit indiquer que le fichier a t crit (written) : Code : Console - Slectionner
4,101-98
:q : quitter
Maintenant que vous avez enregistr, vous pouvez quitter Vim en tapant :q J'ai essay de quitter en ayant fait des modifications aprs avoir enregistr, et un message d'erreur s'affiche en rouge : "No write since last change".
Vim vous interdit de quitter si vous n'avez pas enregistr vos changements. Vous pouvez toutefois forcer la fermeture de Vim en ajoutant un point d'exclamation la fin : :q!. Cette fois, il n'y aura pas d'erreur.
Par exemple, si vous tapez 4x (4 puis x), vous supprimerez les 4 prochaines lettres en partant du curseur. Vous devez taper 4 puis x. Ne vous tonnez pas si rien ne s'affiche l'cran lorsque vous avez tap 4, c'est normal. Ecrivez la commande jusqu'au bout, cela fonctionnera.
Note importante : la ligne ainsi supprime est en fait "coupe" et place en mmoire. Elle peut tre colle, comme on le verra plus loin, avec la touche p.
dw : supprimer un mot
Placez le curseur sur la premire lettre d'un mot. Tapez ensuite dw (delete word) : cela supprime le mot en entier ! Si le curseur est positionn au milieu du mot, vous ne supprimerez que les prochains caractres du mot (jusqu' l'espace qui suit). Vous pouvez aussi supprimer les 3 prochains mots en tapant 3dw. Notez que le 3 peut tre plac entre le d et le w, cela revient au mme : d3w (ce qui peut se lire "delete 3 words").
En tapant d0, vous supprimez du curseur jusqu'au dbut de la ligne. En tapant d$, vous supprimez du curseur jusqu' la fin de la ligne.
Pratique !
p : coller
Si vous avez "coup" du texte avec dd ou copi du texte avec yy (ou un de leurs quivalents) vous pouvez ensuite le coller avec la touche p. Attention, retenez bien ceci : si vous avez copi une ligne en mmoire et que vous appuyez sur "p", elle sera colle sur la ligne situe aprs le curseur. On est parfois surpris de voir o se colle le texte, donc prenez le temps de vous y habituer.
Vous pouvez aussi coller plusieurs fois un texte en faisant prcder le "p" d'un nombre. Par exemple, 8p collera 8 fois le texte en mmoire. Si je place mon curseur sur une ligne, que je tape yy puis 8p, je la collerai donc 8 fois !
mme
).
G : sauter la ligne nX
Toutes les lignes d'un fichier ont un numro. La numrotation commence 1. Regardez bien en bas droite de Vim, vous devriez voir quelque chose comme 4,3. 4 correspond au numro de la ligne sur laquelle se trouve le curseur, et 3 correspond au numro de la colonne (3me lettre de la ligne). Vous pouvez directement sauter la ligne n7 par exemple en tapant 7G (attention, c'est un G majuscule, donc pensez laisser la touche "Maj" appuye). Pour sauter la dernire ligne, tapez simplement G. Pour revenir la premire ligne, tapez gg. Retour en haut
Pour passer la prochaine occurrence du mot plus bas dans le fichier (s'il apparat plusieurs fois), appuyez sur n. Pour rechercher en arrire, appuyez sur N (Maj + n). Si vous souhaitez ds le dpart lancer une recherche qui remonte vers le dbut du fichier, utilisez ? au lieu de / pour lancer la recherche. Le fonctionnement reste le mme.
:s/ancien/nouveau : remplace la premire occurrence de la ligne o se trouve le curseur. :s/ancien/nouveau/g : remplace toutes les occurrences de la ligne o se trouve le curseur. :#,#s/ancien/nouveau/g : remplace toutes les occurrences dans les lignes n# # du fichier. :%s/ancien/nouveau/g : remplace toutes les occurrences dans tout le fichier. C'est peut-tre ce que vous utiliserez le plus frquemment.
:r : fusion de fichiers
Avec :r, vous pouvez insrer un fichier la position du curseur. Vous devez indiquer le nom du fichier insrer, par exemple : :r autrefichier. L'auto-compltion avec Tab fonctionne l-aussi, donc pas besoin d'crire le nom du fichier en entier !
Le fichier est ouvert une seconde fois (ce qui vous permet de voir 2 endroits diffrents du fichier la fois) mais il est bien entendu possible d'ouvrir 2 fichiers diffrents. Pour faire cela, rajoutez le nom du fichier ouvrir la suite de la commande : :sp autrefichier. Bonne nouvelle : l'autocompltion avec la touche Tab fonctionne aussi dans Vim ! Vous pouvez retaper :sp pour dcouper cette fois l'cran en 3 et ainsi de suite, mais gare la lisibilit ensuite.
Il est bien entendu possible de rpter plusieurs fois la commande, et mme de combiner des dcoupages verticaux et horizontaux.
Ctrl + w puis Ctrl + w : navigue de viewport en viewport. Rptez l'opration plusieurs fois pour accder au viewport dsir. Ctrl + w puis j : dplace le curseur pour aller au viewport juste en-dessous. La mme chose fonctionne avec les touches h, k et l que l'on utilise traditionnellement pour se dplacer dans Vim. Ctrl + w puis + : agrandit le viewport actuel. Ctrl + w puis - : rduit le viewport actuel. Ctrl + w puis = : galise nouveau la taille des viewports.
Ctrl + w puis r : change la position des viewports. Fonctionne aussi avec "R" majuscule pour changer en sens inverse. Ctrl + w puis q : ferme le viewport actuel.
Voil qui devrait vous permettre de faire ce que vous voulez en cran splitt.
En activant ou dsactivant des options. La documentation complte des options est disponible en ligne. En installant des plugins. Voir la page officielle des plugins les plus tlchargs de Vim.
Nous n'allons pas passer en revue les plugins, mais il y a un certain nombre d'options intressantes qu'il vaut le coup d'activer.
Certaines options doivent tre prcises avec une valeur, comme ceci : :set option=valeur
$ cp /etc/vim/vimrc ~/.vimrc
Ouvrez maintenant ce fichier... avec Vim bien sr. Code : Console - Slectionner
$ vim .vimrc
Le dbut du fichier ressemble ceci :
All system-wide defaults are set in $VIMRUNTIME/debian.vim (usually jus /usr/share/vim/vimcurrent/debian.vim) and sourced by the call to :runti you can find below. If you wish to change any of those settings, you s do it in this file (/etc/vim/vimrc), since debian.vim will be overwritt everytime an upgrade of the vim packages is performed. It is recommend make changes after sourcing debian.vim since it alters the value of the 'compatible' option.
" This line should not be removed as it ensures that various options are " properly set to work with the Vim-related packages available in Debian. runtime! debian.vim
" Uncomment the next line to make Vim more Vi-compatible " NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changes num " options, so any other options should be set AFTER setting 'compatible'. "set compatible
" Vim5 and later versions support syntax highlighting. Uncommenting the n " line enables syntax highlighting by default. "syntax on
" If using a dark background within the editing area and syntax highlight " turn on this option as well
Les lignes commenant par " sont des commentaires. Je vous recommande de les lire, ils donnent des informations utiles.
Passons maintenant l'activation de quelques commandes bien utiles. Je vous recommande de travailler avec le fichier de configuration .vimrc comme moi, et d'activer les options qui vous plaisent en dcommentant les lignes concernes. Pour cela, la meilleure faon de procder est de se mettre en mode interactif, de se dplacer avec hjkl, et d'appuyer sur x lorsque le curseur est sur un guillemet pour le supprimer et activer ainsi l'option.
syntax on
Notez qu'il faut enregistrer, quitter et relancer Vim pour que le changement soit pris en compte... sauf bien sr si vous activez l'option la vole en tapant dans Vim :set syntax=ON
Aperu du rsultat :
set background=dark
set number
C'est assez pratique, notamment quand on programme.
set showcmd
set ignorecase
set mouse=a
Dsormais, vous pourrez cliquer avec la souris sur une lettre pour y dplacer le curseur directement. Vous pourrez utiliser la molette de la souris pour vous dplacer dans le fichier. Vous pourrez aussi slectionner du texte avec la souris. Vous passerez alors en mode visuel. Dans ce mode, vous pouvez supprimer le texte slectionn (avec x comme d'habitude), mais aussi mettre le texte tout en majuscules (U), minuscules (u), etc. Pour plus d'informations, lisez la documentation du mode visuel de Vim. Retour en haut
Q.C.M.
Dans quel mode dbute-t-on avec Vim ?
m k h
J'ai effectu des modifications sur un fichier mais je souhaite sortir sans rien enregistrer. Quelle commande dois-je taper ?
:q :wq :q! :x
/ $ 0 9
Les lignes ainsi supprimes ont en fait t "coupes" et places en mmoire. Je souhaite les rajouter en fin de fichier. Je dois tout d'abord me rendre la fin du fichier. Que dois-je taper ?
gg G $G
Maintenant que je suis la fin du fichier, comment puis-je coller les lignes qui sont en mmoire ?
p s Q
Je souhaite annuler les 2 dernires modifications que je viens de faire pour revenir comme avant. Comment faire ?
u2 UU 2u
Bien, maintenant que vous savez manier un diteur de texte digne de ce nom, il est temps de passer aux choses srieuses : la programmation ! Direction le prochain chapitre, on va faire des scripts bash