=============================================================================== = B i e n v e n u e dans l e T u t o r i e l de VIM – Version 1.7 = =============================================================================== = C H A P I T R E DEUX = =============================================================================== Hic sunt dracones : si cʼest la première fois que vous utilisez Vim et que vous souhaitez accéder au tutoriel dʼintroduction, tapez les trois touches :q! puis la touche et recommencez. Il vous faudra entre 8 et 10 minutes pour terminer ce chapitre, selon que vous passiez plus ou moins de temps à expérimenter. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Leçon 2.1.1 : REGISTRES NOMMÉS ** Conserver deux mots copiés en parallèle, puis les coller ** 1. Déplacez le curseur sur la ligne ci-dessous commençant par : ---> 2. Placez-vous nʼimporte où dans le mot 'Édouard' et tapez "ayiw AIDE MNÉMOTECHNIQUE : dans le registre(") nommé (a) (y)ank la portion (i)nterne du (w)ord sous-jacent 3. Avancez jusquʼau mot 'chouquettes' (fq ou 2fc ou $ ou /ch) et tapez "byiw 4. Rendez-vous sur le mot 'Vincent' et tapez ciwa<ÉCHAP> AIDE MNÉMOTECHNIQUE : é(c)hange la partie (i)nterne du (w)ord sous-jacent avec le nommé (a) 5. Rendez-vous sur le mot 'croissant' et tapez ciwb<ÉCHAP> ---> a) Édouard aura toute autorité sur le contingentement des chouquettes b) À ce titre, Vincent exercera seul le pouvoir discrétionnaire sur lʼattribution des croissants. NOTE : On peut aussi utiliser les registres avec la commande de suppression. Taper "sdiw supprimera le mot sous-jacent et en conservera une copie dans le registre (s). RÉFÉRENCES: Registres :h registers Registres nommés :h quotea Mouvements :h motion.txt /inner CTRL-R :h insert /CTRL-R ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Leçon 2.1.2 : LE REGISTRE DʼEXPRESSIONS ** Insérer à la volée le résultat dʼun calcul ** 1. Déplacez le curseur sur la ligne ci-dessous commençant par : ---> 2. Placez-vous sur le nombre 3. Tapez ciw suivi de =60*60*24 4. Sur la ligne suivante, en mode Insertion, ajoutez la date du jour avec suivi de =system('date') NOTE : Tous les appels système dépendent de votre système dʼexploitation. Par exemple sur MS-Windows, utilisez plutôt system('date /t') ou :r!date /t ---> Dans une journée, il y a 100 secondes. Aujourdʼhui, nous sommes : NOTE: on arrive au même résultat avec :pu=system('date') ou, plus court :r!date RÉFÉRENCE : Registre dʼexpressions :h quote= ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Leçon 2.1.3 : LES REGISTRES NUMÉROTÉS ** Tapez yy et dd afin de contempler leur effet sur les registres ** 1. Déplacez le curseur sur la ligne ci-dessous commençant par : ---> 2. Copiez (yy) la ligne 0, puis inspectez les registres avec :reg 3. Supprimez la ligne 0 avec "cdd, puis inspectez les registres (Où pensez-vous retrouver la ligne 0 ?) 4. Continuez à supprimer chaque ligne successivement (avec dd), tout en regardant le résultat au passage avec :reg. NOTE : Vous devriez remarquer que les anciennes lignes supprimées descendent dans la liste des registres au fur et à mesure que vous supprimez de nouvelles lignes. 5. Maintenant collez le contenu des registres suivant, dans cet ordre : c, 7, 4, 2, 8. i.e collez avec "cp puis "7p puis etc. ---> 0. Ceci 9. zigzag 8. secret 7. est 6. on 5. axe 4. un 3. guerre 2. message 1. hommage NOTE : Les lignes entièrement supprimées (via dd) restent beaucoup plus longtemps dans les registres numérotés que les lignes copiées (via yy) ou les suppressions impliquant des mouvements plus courts. RÉFÉRENCE : Registres numérotés :h quote0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Leçon 2.1.4 : LʼÉLÉGANCE DES MARQUES ** Lʼart dʼéviter les calculs pour le codeur décérébré ** NOTE : En programmation, déplacer de gros blocs de code est souvent une vraie corvée. Le souci nʼest pas la difficulté de lʼopération, mais la gymnastique mentale quʼimposent les calculs de numéros de ligne — une tâche fastidieuse et source dʼerreurs. La technique qui suit vous épargne justement ce tracas pour des opérations comme "a147d ou :945,1091d a ou pire encore i suivi de =1091-945 1. Déplacez le curseur sur la ligne ci-dessous commençant par : ---> 2. Placez-vous sur la première ligne de la fonction et placez une marque (a) avec ma NOTE : peu importe la position exacte sur la ligne. 3. Allez à la fin de la ligne, puis à la fin du bloc de code avec $% 4. Supprimez le bloc et conservez-le dans le registre (a) avec "ad'a AIDE MNÉMOTECHNIQUE : demande au registre(") nommé (a) de conserver la (d)élétion effectuée depuis le curseur jusquʼà la LIGNE contenant la marque(') (a) 5. Collez le bloc entre BBB et CCC avec "ap NOTE : exercez-vous plusieurs fois pour que ça devienne naturel ma$%"ad'a ---> AAA function itGotRealBigRealFast() { if ( somethingIsTrue ) { doIt() } // the taxonomy of our function has changed and it // no longer makes alphabetical sense in its current position // imagine hundreds of lines of code // naively you could navigate to the start and end and record or // remember each line number } BBB CCC NOTE : les marques et les registres ne partagent pas leur espace de noms, le registre (a) est complètement indépendant de la marque (a). On ne peut pas en dire autant des registres et des macros. RÉFÉRENCES : Marques :h marks :h mark-motions (différence entre ' et ` ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Leçon 2.1 RÉSUMÉ 1. Utiliser lʼun des 26 registres nommés (a-z) pour conserver (copier/supprimer) et coller du texte. 2. Copier un mot entier en plaçant le curseur sur le mot : yiw 3. Changer un mot entier en plaçant le curseur sur le mot : ciw 4. Insérer du texte directement depuis un registre, en mode Insertion : a 5. Insérer le résultat dʼune opération arithmétique simple : suivi de =60*60 en mode Insertion 6. Insérer le résultat dʼun appel système : suivi de =system('ls -1') en mode Insertion 7. Inspecter les registres avec :reg 8. Apprendre pourquoi les suppressions de lignes entières (dd) sont préservées plus longtemps : elles bénéficient des registres 1 à 9 et sont préservées plus longtemps que toute autre opération 9. Apprendre la destination finale de toutes les copies dans les registres numérotés et à quel point elles sont éphémères 10. Placer des marques depuis le mode Normal m[a-zA-Z0-9] 11. Se déplacer ligne par ligne jusquʼà une marque avec ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Voilà, vous êtes arrivé à la fin du chapitre deux du tutoriel de Vim. Il est encore en chantier. Ce chapitre a été écrit par Paul D. Parker, il a été traduit en français par Damien Lejay. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~