Académique Documents
Professionnel Documents
Culture Documents
340/402
Installer Vim
Sous Linux, il y a 2 diteurs de texte puis s ants en cons ole connatre : Vim : il s 'agit d'une vers ion amliore d'un des plus anciens diteurs en cons ole, qui s 'appellait "Vi" (prononcez les lettres en anglais "vi aille"). Vim (VI iMproved, vers ion amliore de Vi) es t largement rpandu et gnralement dis ponible par dfaut s ur la plupart des OS bas s s ur 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 aus s i bien des atouts . On le retrouve plus s pcifiquement s ous Linux et il es t rarement ins tall par dfaut (un petit apt-get s uffit toutefois ). Il peut tre complt par toute une s rie de plugins qui lui permettent de faire navigateur web, lecteur audio... Bref, c'es t un peu un outil tout faire.
Sachez qu'il es t courant que les gens adoptent l'un ou l'autre de ces diteurs et le dfendent bec et ongles . Chois ir un diteur de texte s ous Linux, c'es t en fait un peu comme chois ir une religion. Oui je s ais , ils s ont fous ces Linuxiens ! Oulah, c'es t important alors ! Lequel chois ir ?
En fait, rien ne vous empche d'apprendre utilis er les deux. Toutefois , ces logiciels s ont tellement complets qu'il vous faudra du temps pour vous habituer chacun d'eux. Dans la pratique, on prend l'habitude d'en chois ir un et de s 'y tenir : il es t 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 s oit nul et l'autre gnial. Ce s ont jus te 2 conceptions un peu diffrentes de ce que doit tre un diteur de texte. Le meilleur cons eil que je puis s e vous donner es t le s uivant : chois is s ez d'utilis er le mme diteur que votre ami pro de Linux ou votre collgue de bureau. L'idal es t d'avoir quelqu'un proximit qui peut rgulirement vous cons eiller. Croyez-moi, s 'il y a bien un cons eil qui s oit important dans ce chapitre, c'es t celui-l.
tches
341/402
Je craignais cette ques tion mais il fallait bien qu'elle tombe un jour... Pour ma part, je n'ai jamais eu l'occas ion de prendre le temps d'apprendre utilis er Emacs . Le profes s eur 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 s uis donc mon tour un habitu de Vim, et c'es t lui que je vous prs enterai dans ce cours . Je ne s uis toutefois pas s ectaire, s i quelqu'un rdige un bon tutoriel s ur Emacs s ur le Site du Zro, je s erai ravi de vous inviter le lire lui aus s i.
V ous pourrez alors lancer Vim en tapant la commande vim (la commande vi fonctionne aus s i mais il es t recommand de taper plutt vim ).
Si vous ne l'avez pas , ins tallez le paquet vim-common. Mais normalement il devrait dj tre ins tall. En fait, vimtutor lance s implement Vim en ouvrant un fichier d'aide prdfini. Cette introduction Vim es t d'ailleurs en franais et es t acces s ible tout le monde, aus s i je vous invite l'es s ayer et la lire en complment de mon cours moi. Petit aperu : Code : Cons ole =============================================================================== = B i e n v e n u e dans le T u t o r i e l de V I M - Version 1.5.fr.2 = =============================================================================== Vim est un diteur trs puissant qui a trop de commandes pour pouvoir toutes les expliquer dans un cours comme celui-ci, qui est conu pour en
342/402
Le temps requis pour suivre ce cours est d'environ 25 30 minutes, selon le temps que vous passerez exprimenter. Les commandes utilises dans les leons modifieront le texte. Faites une copie de ce fichier afin de vous entraner dessus (si vous avez lanc "vimtutor" ceci est dj une copie). Il est important de garder en tte que ce cours est conu pour apprendre par la pratique. Cela signifie que vous devez excuter les commandes 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 majuscules, et appuyez la touche j le nombre de fois suffisant pour que la leon 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'es prit que les pos s ibilits s ont bien plus larges et que vous n'aurez pas tout vu la fin de s a lecture.
On a connu plus sexy, mais bon, c'est un diteur de texte aprs tout
ez. Il m'a
tches
fallu un peu de temps pour m'y habituer et il vous en faudra aus s i, mais le jeu en vaut la chandelle.
343/402
Si on ne vous explique rien, vous ris quez d'tre un peu perdus . Pire, vous aurez mme du mal s ortir de Vim (ne rigolez pas , a m'es t arriv la premire fois !). V ce qu'il faut s avoir... et qu'on aurait d m'expliquer ds le dpart d'ailleurs . Vim pos s de 3 modes de travail diffrents : oil Mode interactif : c'es t 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 s ais , c'es t le comble pour un diteur de texte !). N'es s ayez donc pas d'appuyer s ur des lettres au has ard, car vous ris quez de faire n'importe quoi ! Le mode interactif es t un mode puis s ant qui permet de s e dplacer dans le texte, s upprimer une ligne, copier/coller du texte, aller une ligne prcis e, annuler s es actions , etc. Chaque action peut tre dclenche en appuyant s ur une touche du clavier (par exemple, on appuie s ur "u" pour annuler la dernire action). Mode ins ertion : a c'es t le mode que vous connais s ez ! V ous tapez du texte, et il s 'ins re l'endroit o le curs eur s e trouve. Magique ! Pour rentrer dans ce mode, il y a plus ieurs pos s ibilits . Une des plus courantes es t d'appuyer s ur la touche "i" (ins ertion). Pour en s ortir, il faut appuyer s ur la touche "Echap". Mode commande : ce mode permet de lancer des commandes telles que "quitter", "enregis trer", etc. V ous pouvez aus s i l'utilis er pour activer des options de Vim (comme la coloration s yntaxique, l'affichage du numro des lignes ...), et vous pouvez mme envoyer des commandes au s hell ( la cons ole) telles que ls , locate, cp, etc. Pour activer ce mode, vous devez tre en mode interactif et appuyer s ur la touche deux-points ":". V ous validez la commande avec la touche Entre et revenez alors au mode interactif.
Je rs ume. Vim pos s de 3 modes : interactif, ins ertion et commande. V ous dmarrez en mode interactif. Le s eul mode que vous connais s ez et qui ne s era pas nouveau pour vous es t le mode ins ertion. Les 2 autres modes (interactif et commande) vont vous s urprendre un peu.
Pourquoi avoir fait autant de modes qui ont l'air s i compliqus dans un diteur de texte ? Pourquoi n'y a-t-il pas de menus ? Et pourquoi ne pas utilis er plutt un diteur de texte graphique, c'es t quand mme plus s imple avec une s ouris !
tches
344/402
Je vais es s ayer de vous rpondre s implement, et il va falloir me croire s ur parole au dbut : s i des gens s e s ont amus s crer tous ces "modes " et tous ces raccourcis clavier, ce n'es t pas jus te pour le plais ir tortur de faire la mme chos e qu'avec une s ouris et des menus mais avec un clavier. En fait, vous allez vite dcouvrir que v o u s p o u v ez faire d es ch o s es q u e v o u s n e s o u p o n n iez p as av ec u n d iteu r d e texte : s upprimer le mot actuel, couper le texte du curs eur jus qu' la fin de la ligne, coller 4 fois le texte qui s e trouve dans le pres s epapiers , s auter la ligne n453, s auter la dernire ligne, etc. Toutes ces chos es -l s e font au clavier et, pour la plupart d'entre elles , vous devrez retenir par cur quelle touche corres pond quelle action. C'es t un peu contraignant au dpart, mais imaginez que c'es t comme apprendre taper 10 doigts au clavier comme un dactylo : au dbut, c'es t dur, vous avez l'impres s ion 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 s ans connatre tout a. Et pour ceux qui voudraient une interface graphique, s achez que Vim a t port s ous Unity s ous le nom gVim. V ous pouvez donc l'ins taller (mme s i vous utilis ez KDE hein) et le lancer, le fonctionnement es t identique au Vim de la cons ole. Il es t mme dis ponible en vers ion Windows , s i c'es t pas beau a ! Cette fentre affiche par dfaut des menus et une barre d'outils , comme un diteur de texte clas s ique. Un habitu du Vim cons ole aura plutt tendance utilis er les raccourcis clavier qui vont plus vite, bien entendu.
L'ouverture de Vim
Pour le moment, s i vous lancez Vim en tapant jus te la commande s ans paramtre : Code : Cons ole vim
... il s 'ouvre s ur un nouveau fichier vide comme ceci que vous avez dj vu :
tches
345/402
(le texte d'introduction que vous voyez disparatra ds que vous crirez les premiers caractres)
V ous pouvez aus s i ouvrir un fichier en rajoutant s on nom en paramtre : Code : Cons ole vim nomdufichier
i : insrer du texte
Nous allons partir s ur un fichier vide. Nous s ouhaitons commencer rentrer du texte (quoi de plus normal pour un diteur de texte aprs tout ?). Appuyez s ur "i" (i minus cule). V ous bas culez alors en mode ins ertion. V ous pouvez maintenant taper du texte :
tches
346/402
Notez le mes s age -- INSERT -- en bas de l'cran qui vous confirme que vous tes en mode ins ertion. Ecrivez quelques lignes comme moi, puis appuyez s ur la touche Echap pour revenir au mode interactif (le mode normal dans lequel vous tiez au dpart). Le mes s age -- INSERT -- dis parat, 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 curs eur au s ein du texte. Pour cela, on utilis e les touches : h : aller gauche. j : aller en bas . k : aller en haut. l : aller droite.
En image :
tches
QUOIII ? C'es t le comble ! On ne peut mme pas utilis er les flches du clavier pour s e dplacer ?!
347/402
Si s i, vous pouvez aus s i les utilis er. Es s ayez, elles marchent. D'ailleurs , en mode ins ertion, c'es t la s eule chos e qui marche.
:w : enregistrer le fichier
Pour enregis trer votre fichier, vous devez tre au pralable en mode interactif (appuyez s ur Echap pour vous en as s urer). Appuyez ens uite s ur la touche deux-points (:) pour pas s er en mode commande, puis tapez w (write) s uivi du nom du fichier. La commande doit s 'afficher en bas .
Dans mon cas , j'ai donc tap :w monfichier (notez que j'aurais aus s i bien pu donner une extens ion .txt mon fichier). Appuyez ens uite s ur la touche Entre pour valider. Le bas de l'cran doit indiquer que le fichier a t crit (written) :
tches
Code : Cons ole "monfichier" [New] 4L, 185C written 98 All 4,101-
348/402
:q : quitter
Maintenant que vous avez enregis tr, vous pouvez quitter Vim en tapant :q J'ai es s ay de quitter en ayant fait des modifications aprs avoir enregis tr, et un mes s age d'erreur s 'affiche en rouge : "No write since last change".
Vim vous interdit de quitter s i vous n'avez pas enregis tr vos changements . V ous 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, s i vous tapez 4x (4 puis x), vous s upprimerez les 4 prochaines lettres en partant du curs eur. V devez taper 4 puis x. Ne vous tonnez pas s i rien ne s 'affiche l'cran lors que vous avez tap 4, c'es t normal. ous Ecrivez la commande jus qu'au bout, cela fonctionnera.
tches
Appuyez 2 fois s ur d (dd) pour s upprimer toute la ligne s ur laquelle s e trouve le curs eur.
349/402
Mieux : vous pouvez faire prcder cette ins truction d'un nombre de lignes s upprimer. Par exemple, s i vous tapez 2dd, vous s upprimerez 2 lignes d'un coup. Encore une fois , ne vous tonnez pas s i, jus te aprs avoir tap "2", rien ne s 'affiche l'cran. L'information es t enregis tre par Vim en mmoire mais l'action ne s era vraiment excute que lors que vous aurez tap entirement "2dd".
Note importante : la ligne ains i s upprime es t 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 curs eur s ur la premire lettre d'un mot. Tapez ens uite dw (delete word ) : cela s upprime le mot en entier ! Si le curs eur es t pos itionn au milieu du mot, vous ne s upprimerez que les prochains caractres du mot (jus qu' l'es pace qui s uit). V ous pouvez aus s i s upprimer 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 s e lire "delete 3 words").
En tapant d0, vous s upprimez du curs eur jus qu'au dbut de la ligne. En tapant d$, vous s upprimez du curs eur jus qu' 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 ens uite le coller avec la touche p. Attention, retenez bien ceci : s i vous avez copi une ligne en mmoire et que vous appuyez s ur "p", elle s era colle s ur la ligne situe aprs le curseur. On es t parfois s urpris de voir o s e colle le texte, donc prenez le temps de vous y habituer.
V ous pouvez aus s i coller plus ieurs fois un texte en fais ant prcder le "p" d'un nombre. Par exemple, 8p collera 8 fois le texte en mmoire. Si je place mon curs eur s ur une ligne, que je tape yy puis 8p, je la collerai donc 8 fois !
tches
350/402
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 chos e comme 4,3. 4 corres pond au numro de la ligne s ur laquelle s e trouve le curs eur, et 3 corres pond au numro de la colonne (3me lettre de la ligne). V ous pouvez directement s auter la ligne n7 par exemple en tapant 7G (attention, c'es t un G majus cule, donc pens ez lais s er la touche "Maj" appuye). Pour s auter la dernire ligne, tapez s implement G.
tches
Pour revenir la premire ligne, tapez gg.
351/402
:r : fusion de fichiers
Avec :r, vous pouvez ins rer un fichier la pos ition du curs eur. V ous devez indiquer le nom du fichier ins rer, par exemple : :r autrefichier. L'auto-compltion avec Tab fonctionne l-aus s i, donc pas bes oin d'crire le nom du fichier en entier !
tches
352/402
Le plus s imple pour commencer es t de dcouper l'cran horizontalement. Tapez la commande :sp pour dcouper l'cran en deux :
Le fichier es t ouvert une s econde fois (ce qui vous permet de voir 2 endroits diffrents du fichier la fois ) mais il es t bien entendu pos s ible d'ouvrir 2 fichiers diffrents . Pour faire cela, rajoutez le nom du fichier ouvrir la s uite de la commande : :sp autrefichier. Bonne nouvelle : l'auto-compltion avec la touche Tab fonctionne aus s i dans Vim ! V ous pouvez retaper :sp pour dcouper cette fois l'cran en 3 et ains i de s uite, mais gare la lis ibilit ens uite.
tches
353/402
Il es t bien entendu pos s ible de rpter plus ieurs fois la commande, et mme de combiner des dcoupages verticaux et horizontaux.
V qui devrait vous permettre de faire ce que vous voulez en cran s plitt. oil
tches
Vim peut tre pers onnalis de 2 faons diffrentes : En activant ou ds activant des options . La documentation complte des options es t dis ponible en ligne. En ins tallant des plugins . V la page officielle des plugins les plus tlchargs de Vim. oir
354/402
Nous n'allons pas pas s er en revue les plugins , mais il y a un certain nombre d'options intres s antes qu'il vaut le coup d'activer.
Certaines options doivent tre prcis es avec une valeur, comme ceci : :set option=valeur
tches
$ vim .vimrc
355/402
Le dbut du fichier res s emble ceci : Code : Cons ole " " " " " " " All system-wide defaults are set in $VIMRUNTIME/debian.vim (usually just /usr/share/vim/vimcurrent/debian.vim) and sourced by the call to :runtime you can find below. If you wish to change any of those settings, you should do it in this file (/etc/vim/vimrc), since debian.vim will be overwritten everytime an upgrade of the vim packages is performed. It is recommended to 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 numerous " options, so any other options should be set AFTER setting 'compatible'. "set compatible " Vim5 and later versions support syntax highlighting. Uncommenting the next " line enables syntax highlighting by default. "syntax on " If using a dark background within the editing area and syntax highlighting " turn on this option as well
Les lignes commenant par " s ont des commentaires . Je vous recommande de les lire, ils donnent des informations utiles .
Pas s ons 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 plais ent en dcommentant les lignes concernes . Pour cela, la meilleure faon de procder es t de s e mettre en mode interactif, de s e dplacer avec hjkl, et d'appuyer s ur x lors que le curs eur es t s ur un guillemet pour le s upprimer et activer ains i l'option.
Notez qu'il faut enregis trer, quitter et relancer Vim pour que le changement s oit pris en compte... s auf bien s r s i vous activez l'option la vole en tapant dans Vim :set syntax=ON
tches
Aperu du rs ultat :
356/402
tches
357/402
tches
358/402
tches
359/402
Ds ormais , vous pourrez cliquer avec la s ouris s ur une lettre pour y dplacer le curs eur directement. V ous pourrez utilis er la molette de la s ouris pour vous dplacer dans le fichier. V ous pourrez aus s i s lectionner du texte avec la s ouris . V ous pas s erez alors en mode vis uel. Dans ce mode, vous pouvez s upprimer le texte s lectionn (avec x comme d'habitude), mais aus s i mettre le texte tout en majus cules (U), minus cules (u), etc. Pour plus d'informations , lis ez la documentation du mode vis uel de Vim. Le s urnom de Vim es t "Programmer's text editor" (l'diteur de texte du programmeur). On s e rend compte l'us age qu'il es t en effet bien adapt la programmation : coloration s yntaxique pous s e de trs nombreux langages , affichage du numro de ligne, mis e en s urbrillance de la parenths e ou de l'accolade corres pondante, etc. Il es t mme pos s ible de compiler et lancer s es programmes directement depuis Vim ! Pourtant, il n'es t pas facile prendre en main. Ce tutoriel vous aura permis d'avoir une bonne petite introduction Vim, afin que vous ne s oyez pas perdus , mais retenez bien ceci : n o u s s o mmes trs lo in d 'av o ir v u to u tes les p o s s ib ilits d u lo g iciel ! Sans plugins , on peut dj faire des tonnes de chos es , le tout tant de s e rens eigner et de lire la documentation. N'hs itez pas aller plus loin que ce chapitre. Mme s i s a lecture s era s uffis ante pour s uivre la fin du cours , je vous cons eille vraiment de parcourir un peu la doc et de demander des cons eils . On peut faire des chos es tonnantes .
Bien, maintenant que vous s avez manier un diteur de texte digne de ce nom, il es t temps de pas s er aux chos es s rieus es : la programmation ! Direction le prochain chapitre, on va faire des s cripts bas h !