| =============================================================================== |
| = 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 <ENTRÉE> 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<ENTRÉE>) |
| et tapez "byiw |
| |
| 4. Rendez-vous sur le mot 'Vincent' et tapez ciw<CTRL-R>a<ÉCHAP> |
| |
| AIDE MNÉMOTECHNIQUE : é(c)hange la partie (i)nterne du (w)ord sous-jacent |
| avec le <contenu du (r)egistre> nommé (a) |
| |
| 5. Rendez-vous sur le mot 'croissant' et tapez ciw<CTRL-R>b<É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<ENTRÉE> /inner<ENTRÉE> |
| CTRL-R :h insert<ENTRÉE> /CTRL-R<ENTRÉE> |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| |
| 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<CTRL-R> suivi de =60*60*24<ENTRÉE> |
| |
| 4. Sur la ligne suivante, en mode Insertion, ajoutez la date du jour avec |
| <CTRL-R> suivi de =system('date')<ENTRÉE> |
| |
| 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<ENTRÉE> |
| |
| 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<CTRL-R> suivi de =1091-945<ENTRÉE> |
| |
| 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 : |
| <CTRL-R>a |
| |
| 5. Insérer le résultat dʼune opération arithmétique simple : |
| <CTRL-R> suivi de =60*60<ENTRÉE> en mode Insertion |
| 6. Insérer le résultat dʼun appel système : <CTRL-R> suivi de |
| =system('ls -1')<ENTRÉE> |
| 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. |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |