blob: 42114b67ebb9347a1a665cdb241419f95ddf71ee [file] [log] [blame]
===============================================================================
= 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
(dlé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.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~