mirror of
https://github.com/vim/vim
synced 2025-07-16 09:12:00 +00:00
updated for version 7.2a
This commit is contained in:
809
runtime/tutor/tutor.fr
Normal file
809
runtime/tutor/tutor.fr
Normal file
@ -0,0 +1,809 @@
|
||||
===============================================================================
|
||||
= 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 <20>diteur tr<74>s puissant qui a trop de commandes pour pouvoir
|
||||
toutes les expliquer dans un cours comme celui-ci, qui est con<6F>u pour en
|
||||
d<>crire suffisamment afin de vous permettre d'utiliser simplement Vim.
|
||||
|
||||
Le temps requis pour suivre ce cours est d'environ 25 <20> 30 minutes, selon
|
||||
le temps que vous passerez <20> exp<78>rimenter. Les commandes utilis<69>es dans
|
||||
les le<6C>ons modifieront le texte. Faites une copie de ce fichier afin de
|
||||
vous entra<72>ner dessus (si vous avez lanc<6E> "vimtutor" ceci est d<>j<EFBFBD> une
|
||||
copie).
|
||||
|
||||
Il est important de garder en t<>te que ce cours est con<6F>u pour apprendre
|
||||
par la pratique. Cela signifie que vous devez ex<65>cuter les commandes
|
||||
pour les apprendre correctement. Si vous vous contentez de lire le
|
||||
texte, vous oublierez les commandes !
|
||||
|
||||
Maintenant, v<>rifiez que votre clavier n'est PAS verouill<6C> en majuscules,
|
||||
et appuyez la touche j le nombre de fois suffisant pour que la le<6C>on
|
||||
1.1 remplisse compl<70>tement l'<27>cran.
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Le<4C>on 1.1 : D<>PLACEMENT DU CURSEUR
|
||||
|
||||
|
||||
** Pour d<>placer le curseur, appuyez les touches h,j,k,l comme indiqu<71>. **
|
||||
^
|
||||
k Astuce: La touche h est <20> gauche et d<>place <20> gauche.
|
||||
< h l > La touche l est <20> droite et d<>place <20> droite.
|
||||
j La touche j ressemble <20> une fl<66>che vers le bas.
|
||||
v
|
||||
1. D<>placez le curseur sur l'<27>cran jusqu'<27> vous sentir <20> l'aise.
|
||||
|
||||
2. Maintenez la touche Bas (j) enfonc<6E>e jusqu'<27> ce qu'elle se r<>p<EFBFBD>te.
|
||||
---> Maintenant vous <20>tes capable de vous d<>placer jusqu'<27> la le<6C>on suivante.
|
||||
|
||||
3. En utilisant la touche Bas, allez <20> la Le<4C>on 1.2.
|
||||
|
||||
Note: Si jamais vous doutez de ce que vous venez de taper, appuyez <<3C>chap>
|
||||
pour revenir en mode Normal. Puis retapez la commande que vous vouliez.
|
||||
|
||||
Note: Les touches fl<66>ch<63>es devraient <20>galement fonctionner. Mais en utilisant
|
||||
hjkl vous pourrez vous d<>placer beaucoup plus rapidement, une fois que
|
||||
vous aurez pris l'habitude.
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Le<4C>on 1.2 : ENTR<54>E ET SORTIE DE VIM
|
||||
|
||||
|
||||
!! NOTE: Avant d'effectuer les <20>tapes ci-dessous, lisez toute cette le<6C>on !!
|
||||
|
||||
1. Appuyez la touche <<3C>chap> (pour <20>tre s<>r d'<27>tre en mode Normal).
|
||||
|
||||
2. Tapez: :q! <Entr<74>e>
|
||||
|
||||
---> Ceci quitte l'<27>diteur SANS sauver les changements que vous avez faits.
|
||||
Si vous voulez enregistrer les changements et sortir, tapez:
|
||||
:wq <Entr<74>e>
|
||||
|
||||
3. Lorsque l'invite du 'shell' vous sera pr<70>sent<6E>e, tapez la commande qui
|
||||
vous a amen<65> dans ce tutoriel. Cela pourrait <20>tre: vimtutor <Entr<74>e>
|
||||
Normalement, vous utiliseriez: vim tutor <Entr<74>e>
|
||||
|
||||
---> 'vim' lance l'<27>diteur, 'tutor' est le fichier que vous souhaitez <20>diter.
|
||||
|
||||
4. Si vous avez m<>moris<69> ces <20>tapes et <20>tes confiant, effectuez les <20>tapes
|
||||
1 <20> 3 pour sortir puis rentrer dans l'<27>diteur. D<>placez ensuite le
|
||||
curseur jusqu'<27> la Le<4C>on 1.3.
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Le<4C>on 1.3 : <20>DITION DE TEXTE - EFFACEMENT
|
||||
|
||||
|
||||
** En mode Normal, appuyez x pour effacer le caract<63>re sous le curseur. **
|
||||
|
||||
1. D<>placez le curseur sur la ligne marqu<71>e ---> ci-dessous.
|
||||
|
||||
2. Pour corriger les erreurs, d<>placez le curseur jusqu'<27> ce qu'il soit
|
||||
sur un caract<63>re <20> effacer.
|
||||
|
||||
3. Appuyez la touche x pour effacer le caract<63>re redondant.
|
||||
|
||||
4. R<>p<EFBFBD>tez les <20>tapes 2 <20> 4 jusqu'<27> ce que la phrase soit correcte.
|
||||
|
||||
---> La vvache <20> saut<75><74> au-ddessus dde la luune.
|
||||
|
||||
5. Maintenant que la ligne est correcte, passez <20> la le<6C>on 1.4.
|
||||
|
||||
NOTE: En avan<61>ant dans ce cours, n'essayez pas de m<>moriser, apprenez par
|
||||
la pratique.
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Le<4C>on 1.4 : <20>DITION DE TEXTE - INSERTION
|
||||
|
||||
|
||||
** En mode Normal, appuyez i pour ins<6E>rer du texte. **
|
||||
|
||||
1. D<>placez le curseur sur la premi<6D>re ligne marqu<71>e ---> ci-dessous.
|
||||
|
||||
2. Pour rendre la premi<6D>re ligne identique <20> la seconde, mettez le curseur
|
||||
sur le premier caract<63>re APR<50>S l'endroit o<> ins<6E>rer le texte.
|
||||
|
||||
3. Appuyez i et tapez les caract<63>res qui manquent.
|
||||
|
||||
4. Une fois qu'une erreur est corrig<69>e, appuyez <<3C>chap> pour revenir en mode
|
||||
Normal. R<>p<EFBFBD>tez les <20>tapes 2 <20> 4 pour corriger la phrase.
|
||||
|
||||
---> Il mnqe caract<63>res cette .
|
||||
---> Il manque des caract<63>res dans cette ligne.
|
||||
|
||||
5. Une fois que vous <20>tes <20> l'aise avec l'insertion de texte, allez au
|
||||
r<>sum<75> ci-dessous.
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
R<>SUM<55> DE LA LE<4C>ON 1
|
||||
|
||||
1. Le curseur se d<>place avec les touches fl<66>ch<63>es ou les touches hjkl.
|
||||
h (gauche) j (bas) k (haut) l (droite)
|
||||
|
||||
2. Pour entrer dans Vim (<28> l'invite %) tapez: vim FICHIER <Entr<74>e>
|
||||
|
||||
3. Pour quitter Vim tapez: <<3C>chap> :q! <Entr<74>e> pour perdre tous les
|
||||
changements.
|
||||
OU tapez: <<3C>chap> :wq <Entr<74>e> pour enregistrer les
|
||||
changements.
|
||||
|
||||
4. Pour effacer un caract<63>re sous le curseur en mode Normal tapez: x
|
||||
|
||||
5. Pour ins<6E>rer du texte au niveau du curseur en mode Normal tapez:
|
||||
i tapez le texte <<3C>chap>
|
||||
|
||||
NOTE: Appuyer <<3C>chap> vous place en mode Normal ou annule une commande
|
||||
partiellement tap<61>e dont vous ne voudriez plus.
|
||||
|
||||
Passez maintenant <20> la Le<4C>on 2.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Le<4C>on 2.1 : EFFACEMENTS
|
||||
|
||||
|
||||
** Tapez dw pour effacer jusqu'<27> la fin d'un mot. **
|
||||
|
||||
1. Appuyez <<3C>chap> pour <20>tre s<>r d'<27>tre en mode Normal.
|
||||
|
||||
2. D<>placez le curseur sur la ligne marqu<71>e ---> ci-dessous.
|
||||
|
||||
3. Placez le curseur sur le d<>but d'un mot qui a besoin d'<27>tre effac<61>.
|
||||
|
||||
4. Tapez dw pour faire dispara<72>tre ce mot.
|
||||
|
||||
NOTE: Les lettres dw appara<72>tront sur la derni<6E>re ligne de l'<27>cran lors de
|
||||
votre frappe. Si vous avez mal tap<61> quelque chose, appuyez <<3C>chap> et
|
||||
recommencez.
|
||||
|
||||
---> Il y a quelques dr<64>le mots qui n'ont rien <20> faire papier sur cette ligne.
|
||||
|
||||
5. R<>p<EFBFBD>tez les <20>tapes 3 et 4 jusqu'<27> ce que la phrase soit correcte et allez
|
||||
<20> la Le<4C>on 2.2.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Le<4C>on 2.2 : PLUS D'EFFACEMENTS
|
||||
|
||||
|
||||
** Tapez d$ pour effacer jusqu'<27> la fin de la ligne. **
|
||||
|
||||
1. Appuyez <<3C>chap> pour <20>tre s<>r d'<27>tre en mode Normal.
|
||||
|
||||
2. D<>placez le curseur sur la ligne marqu<71>e ---> ci-dessous.
|
||||
|
||||
3. D<>placez le curseur jusqu'<27> la fin correcte de la ligne
|
||||
(APR<50>S le premier . ).
|
||||
|
||||
4. Tapez d$ pour effacer jusqu'<27> la fin de la ligne.
|
||||
|
||||
---> Quelqu'un a tap<61> la fin de cette ligne deux fois. cette ligne deux fois.
|
||||
|
||||
5. Allez <20> la Le<4C>on 2.3 pour comprendre ce qui se passe.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Le<4C>on 2.3 : DES COMMANDES ET DES OBJETS
|
||||
|
||||
|
||||
Le format de la commande d'effacement d est le suivant:
|
||||
|
||||
[nombre] d objet OU d [nombre] objet
|
||||
o<>:
|
||||
nombre - est combien de fois ex<65>cuter la commande (optionnel, d<>faut: 1).
|
||||
d - est la commande d'effacement.
|
||||
objet - est ce sur quoi la commande va op<6F>rer (liste ci-dessous).
|
||||
|
||||
Une courte liste d'objets:
|
||||
w - du curseur jusqu'<27> la fin du mot, y compris l'espace qui suit.
|
||||
e - du curseur jusqu'<27> la fin du mot, SANS l'espace qui suit.
|
||||
$ - du curseur jusqu'<27> la fin de la ligne.
|
||||
|
||||
NOTE: Pour les aventureux, le seul appui d' objet en mode Normal, sans
|
||||
commande, d<>place le curseur comme indiqu<71> dans la liste des objets.
|
||||
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Le<4C>on 2.4 : UNE EXCEPTION <20> 'COMMANDE-OBJET'
|
||||
|
||||
** Tapez dd pour effacer une ligne compl<70>te. **
|
||||
|
||||
Vu le nombre de fois o<> l'on efface des lignes compl<70>tes, les concepteurs
|
||||
de Vi ont d<>cid<69> qu'il serait plus facile de taper simplement deux d <20> la
|
||||
suite pour effacer une ligne.
|
||||
|
||||
1. Placez le curseur sur la seconde ligne de la phrase ci-dessous.
|
||||
2. Tapez dd pour effacer la ligne.
|
||||
3. Maintenant allez <20> la quatri<72>me ligne.
|
||||
4. Tapez 2dd (rappelez-vous, nombre-commande-objet) pour effacer les
|
||||
deux lignes.
|
||||
|
||||
1) Les roses sont rouges,
|
||||
2) La boue c'est dr<64>le,
|
||||
3) Les violettes sont bleues,
|
||||
4) J'ai une voiture,
|
||||
5) Les horloges donnent l'heure,
|
||||
6) Le sucre est doux
|
||||
7) Tout comme vous.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Le<4C>on 2.5 : L'ANNULATION
|
||||
|
||||
** Tapez u pour annuler les derni<6E>res commandes. **
|
||||
** Tapez U pour r<>cup<75>rer toute une ligne. **
|
||||
|
||||
1. D<>placez le curseur sur la ligne marqu<71>e ---> ci-dessous et placez-le sur
|
||||
la premi<6D>re erreur.
|
||||
2. Tapez x pour effacer le premier caract<63>re redondant.
|
||||
3. Puis tapez u pour annuler la derni<6E>re commande ex<65>cut<75>e.
|
||||
4. Cette fois, corrigez toutes les erreurs de la ligne avec la commande x .
|
||||
5. Puis tapez un U majuscule pour remettre la ligne dans son <20>tat initial.
|
||||
6. Puis tapez u deux-trois fois pour annuler le U et les commandes
|
||||
pr<70>c<EFBFBD>dentes.
|
||||
7. Maintenant tapez Ctrl-R (maintenez la touche Ctrl enfonc<6E>e pendant que
|
||||
vous appuyez sur R) deux-trois fois pour refaire les commandes (annuler
|
||||
les annulations).
|
||||
|
||||
---> Coorrigez les erreurs suur ccette ligne et reemettez-les avvec 'annuler'.
|
||||
|
||||
8. Ce sont des commandes tr<74>s utiles. Maintenant, allez au r<>sum<75> de la
|
||||
Le<4C>on 2.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
R<>SUM<55> DE LA LE<4C>ON 2
|
||||
|
||||
|
||||
1. Pour effacer du curseur jusqu'<27> la fin d'un mot tapez: dw
|
||||
|
||||
2. Pour effacer du curseur jusqu'<27> la fin d'une ligne tapez: d$
|
||||
|
||||
3. Pour effacer toute une ligne tapez: dd
|
||||
|
||||
4. Le format d'une commande en mode Normal est:
|
||||
|
||||
[nombre] commande objet OU commande [nombre] objet
|
||||
o<>:
|
||||
nombre - est combien de fois r<>p<EFBFBD>ter la commande
|
||||
commande - est ce qu'il faut faire, par exemple d pour effacer
|
||||
objet - est ce sur quoi la commande devrait agir, par exemple w (mot),
|
||||
$ (jusqu'<27> la fin de la ligne), etc.
|
||||
|
||||
5. Pour annuler des actions pr<70>c<EFBFBD>dentes, tapez: u (u minuscule)
|
||||
Pour annuler tous les changements sur une ligne tapez: U (U majuscule)
|
||||
Pour annuler l'annulation tapez: Ctrl-R
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Le<4C>on 3.1 : LE COLLAGE
|
||||
|
||||
|
||||
** Tapez p pour placer apr<70>s le curseur ce qui vient d'<27>tre effac<61>. **
|
||||
|
||||
1. Placez le curseur sur la premi<6D>re ligne du "po<70>me" ci-dessous.
|
||||
|
||||
2. Tapez dd pour effacer la ligne et la placer dans le tampon de Vim.
|
||||
|
||||
3. D<>placez le curseur sur la ligne qui PR<50>C<EFBFBD>DE l'endroit o<> vous voulez
|
||||
remettre la ligne effac<61>e.
|
||||
|
||||
4. En mode Normal, tapez p pour remettre la ligne.
|
||||
|
||||
5. R<>p<EFBFBD>tez les <20>tapes 2 <20> 4 pour mettre toutes les lignes dans le bon ordre.
|
||||
|
||||
d) Et vous, qu'apprenez-vous ?
|
||||
b) Les violettes sont bleues,
|
||||
c) L'intelligence s'apprend,
|
||||
a) Les roses sont rouges,
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Le<4C>on 3.2 : LE REMPLACEMENT
|
||||
|
||||
|
||||
** Tapez r et un caract<63>re pour remplacer le caract<63>re sous le curseur. **
|
||||
|
||||
1. D<>placez le curseur sur la premi<6D>re ligne marqu<71>e ---> ci-dessous.
|
||||
|
||||
2. Placez le curseur de mani<6E>re <20> ce qu'il surplombe la premi<6D>re erreur.
|
||||
|
||||
3. Tapez r suivi du caract<63>re qui doit corriger l'erreur.
|
||||
|
||||
4. R<>p<EFBFBD>tez les <20>tapes 2 et 3 jusqu'<27> ce que la premi<6D>re ligne soit correcte.
|
||||
|
||||
---> Quand cette ligne a <20>t<EFBFBD> sauvie, quelqu'un a lait des faunes de frappe !
|
||||
---> Quand cette ligne a <20>t<EFBFBD> saisie, quelqu'un a fait des fautes de frappe !
|
||||
|
||||
5. Maintenant, allez <20> la Le<4C>on 3.3.
|
||||
|
||||
NOTE: N'oubliez pas que vous devriez apprendre par la pratique, pas par
|
||||
m<>morisation.
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Le<4C>on 3.3 : LE CHANGEMENT
|
||||
|
||||
|
||||
** Pour changer tout ou partie d'un mot, tapez cw .**
|
||||
|
||||
1. D<>placez le curseur sur la premi<6D>re ligne marqu<71>e ---> ci-dessous.
|
||||
|
||||
2. Placez le curseur sur le u de luhko.
|
||||
|
||||
3. Tapez cw et corrigez le mot (dans notre cas, tapez 'igne'.)
|
||||
|
||||
4. Appuyez <<3C>chap> et placez-vous sur l'erreur suivante (le premier
|
||||
caract<63>re qui doit <20>tre chang<6E>).
|
||||
|
||||
5. R<>p<EFBFBD>tez les <20>tapes 3 et 4 jusqu'<27> ce que la premi<6D>re phrase soit
|
||||
identique <20> la seconde.
|
||||
|
||||
---> Cette luhko contient quelques myqa qui ont ricne d'<27>tre chantufip.
|
||||
---> Cette ligne contient quelques mots qui ont besoin d'<27>tre chang<6E>s.
|
||||
|
||||
Notez que cw efface le mot et vous place ensuite en mode Insertion.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Le<4C>on 3.4 : PLUS DE CHANGEMENTS AVEC c
|
||||
|
||||
|
||||
** Le changement fonctionne avec les m<>mes objets que l'effacement. **
|
||||
|
||||
1. Le changement fonctionne de la m<>me mani<6E>re que l'effacement.
|
||||
Le format est:
|
||||
|
||||
[nombre] c objet OU c [nombre] objet
|
||||
|
||||
2. Les objets sont <20>galement les m<>mes: w (mot), $ (fin de ligne), etc.
|
||||
|
||||
3. D<>placez-vous <20> la premi<6D>re ligne marqu<71>e ---> ci-dessous.
|
||||
|
||||
4. Placez le curseur sur la premi<6D>re erreur.
|
||||
|
||||
5. Tapez c$ pour changer la fin de la ligne, rendez-l<> identique <20> la
|
||||
seconde ligne, puis tapez <<3C>chap>.
|
||||
|
||||
---> La fin de cette ligne doit <20>tre rendue identique <20> la seconde.
|
||||
---> La fin de cette ligne doit <20>tre corrig<69>e avec la commande c$ .
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
R<>SUM<55> DE LA LE<4C>ON 3
|
||||
|
||||
|
||||
1. Pour remettre du texte qui vient d'<27>tre effac<61>, tapez p . Cela Place le
|
||||
texte effac<61> APR<50>S le curseur (si une ligne compl<70>te a <20>t<EFBFBD> effac<61>e, elle
|
||||
sera plac<61>e sous la ligne du curseur).
|
||||
|
||||
2. Pour remplacer le caract<63>re sous le curseur, tapez r suivi du caract<63>re
|
||||
qui remplacera l'original.
|
||||
|
||||
3. Le changement vous permet de changer l'objet sp<73>cifi<66>, du curseur jusqu'<27>
|
||||
la fin de l'objet. Par exemple, tapez cw pour changer du curseur
|
||||
jusqu'<27> la fin du mot, c$ pour changer jusqu'<27> la fin d'une ligne.
|
||||
|
||||
4. Le format pour le changement est:
|
||||
|
||||
[nombre] c objet OU c [nombre] objet
|
||||
|
||||
Passez maintenant <20> la le<6C>on suivante.
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Le<4C>on 4.1 : POSITION ET <20>TAT DU FICHIER
|
||||
|
||||
|
||||
** Tapez Ctrl-G pour afficher votre position dans le fichier et son <20>tat.
|
||||
Utilisez Maj-G pour vous rendre <20> une ligne donn<6E>e du fichier. **
|
||||
|
||||
Note: Lisez toute cette le<6C>on avant d'effectuer l'une des <20>tapes !
|
||||
|
||||
1. Maintenez enfonc<6E>e la touche Ctrl et appuyez sur G . Une ligne d'<27>tat
|
||||
va appara<72>tre en bas de l'<27>cran avec le nom du fichier et le num<75>ro de la
|
||||
ligne o<> vous <20>tes. Notez ce num<75>ro, il servira lors de l'<27>tape 3.
|
||||
|
||||
2. Tapez G majuscule (Maj-G) pour vous rendre <20> la fin du fichier.
|
||||
|
||||
3. Tapez le num<75>ro de la ligne o<> vous <20>tiez suivi de Maj-G. Cela vous
|
||||
ram<61>nera <20> la ligne o<> vous <20>tiez au d<>part.
|
||||
(Lorsque vous tapez les chiffres, ils n'apparaissent PAS <20> l'<27>cran).
|
||||
|
||||
4. Si vous vous sentez pr<70>t <20> faire ceci, effectuez les <20>tapes 1 <20> 3.
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Le<4C>on 4.2 : LA RECHERCHE
|
||||
|
||||
|
||||
** Tapez / suivi d'un texte pour rechercher ce texte. **
|
||||
|
||||
1. Tapez le caract<63>re / en mode Normal. Notez que celui-ci et le curseur
|
||||
apparaissent en bas de l'<27>cran, comme lorsque l'on utilise : .
|
||||
|
||||
2. Puis tapez 'errreuur' <Entr<74>e>. C'est le mot que vous voulez rechercher.
|
||||
|
||||
3. Pour rechercher <20> nouveau le m<>me texte, tapez simplement n .
|
||||
Pour rechercher le m<>me texte dans la direction oppos<6F>e, tapez Maj-N .
|
||||
|
||||
4. Si vous voulez rechercher un texte vers le haut du fichier, utilisez ?
|
||||
<20> la place de / .
|
||||
|
||||
---> erreur ne s'<27>crit pas "errreuur"; errreuur est une erreur.
|
||||
|
||||
Note: Quand la recherche atteint la fin du fichier, elle reprend au d<>but.
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Le<4C>on 4.3 : RECHERCHE DES PARENTH<54>SES CORRESPONDANTES
|
||||
|
||||
|
||||
** Tapez % pour trouver des ), ] ou } correspondants. **
|
||||
|
||||
1. Placez le curseur sur l'un des (, [ ou { de la ligne marqu<71>e --->
|
||||
ci-dessous.
|
||||
|
||||
2. Puis tapez le caract<63>re % .
|
||||
|
||||
3. Le curseur devrait se placer sur la parenth<74>se correspondante.
|
||||
|
||||
4. Tapez % pour replacer le curseur sur l'autre parenth<74>se.
|
||||
|
||||
---> Voici ( une ligne de test contenant des (, des [ ] et des { } )).
|
||||
|
||||
Note: Cette fonctionnalit<69> est tr<74>s utile lors du d<>bogage d'un programme qui
|
||||
contient des parenth<74>ses d<>s<EFBFBD>quilibr<62>es !
|
||||
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Le<4C>on 4.4 : UNE MANI<4E>RE DE CORRIGER LES ERREURS
|
||||
|
||||
|
||||
** Tapez :s/ancien/nouveau/g pour remplacer 'ancien' par 'nouveau'. **
|
||||
|
||||
1. D<>placez le curseur sur la ligne marqu<71>e ---> ci-dessous.
|
||||
|
||||
2. Tapez :s/lee/le <Entr<74>e> . Notez que cette commande change seulement la
|
||||
premi<6D>re occurence sur la ligne.
|
||||
|
||||
3. Puis tapez :s/lee/le/g qui ordonne de faire une substitution globale
|
||||
sur la ligne. Cela change toutes les occurences sur la ligne
|
||||
|
||||
---> lee meilleur moment pour regarder lees fleurs est pendant lee Printemps.
|
||||
|
||||
4. Pour changer toutes les occurences d'un texte, entre deux lignes,
|
||||
tapez :#,#s/ancien/nouveau/g o<> #,# sont les num<75>ros des deux lignes.
|
||||
Tapez :%s/ancien/nouveau/g pour changer chaque occurence dans tout
|
||||
le fichier.
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
R<>SUM<55> DE LA LE<4C>ON 4
|
||||
|
||||
|
||||
1. Ctrl-G affiche votre position dans le fichier et l'<27>tat de celui-ci.
|
||||
Maj-G vous place <20> la fin du fichier. Un num<75>ro de ligne suivi de Maj-G
|
||||
vous place <20> cette ligne.
|
||||
|
||||
2. Taper / suivi d'un texte recherche ce texte vers l'AVANT.
|
||||
Taper ? suivi d'un texte recherche ce texte vers l'ARRI<52>RE.
|
||||
Apr<70>s une recherche tapez n pour trouver l'occurence suivante dans la
|
||||
m<>me direction ou Maj-N pour rechercher dans la direction oppos<6F>e.
|
||||
|
||||
3. Taper % lorsque le curseur est sur (, ), [, ], { ou } d<>place
|
||||
celui-ci sur le caract<63>re correspondant.
|
||||
|
||||
4. Pour remplacer le premier aa par bb sur une ligne tapez :s/aa/bb
|
||||
Pour remplacer tous les aa par bb sur une ligne tapez :s/aa/bb/g
|
||||
Pour remplacer du texte entre deux num<75>ros de ligne tapez :#,#s/aa/bb/g
|
||||
Pour remplacer toutes les occurences dans le fichier tapez :%s/aa/bb/g
|
||||
Pour demander une confirmation <20> chaque fois ajoutez 'c' :%s/aa/bb/gc
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Le<4C>on 5.1 : COMMENT EX<45>CUTER UNE COMMANDE EXTERNE
|
||||
|
||||
|
||||
** Tapez :! suivi d'une commande externe pour ex<65>cuter cette commande. **
|
||||
|
||||
1. Tapez le : familier pour mettre le curseur en bas de l'<27>cran. Cela vous
|
||||
permet de saisir une commande.
|
||||
|
||||
2. Puis tapez un ! (point d'exclamation). Cela vous permet d'ex<65>cuter
|
||||
n'importe quelle commande valide pour votre interpr<70>teur (shell).
|
||||
|
||||
3. Par exemple, tapez ls apr<70>s le ! et appuyez <Entr<74>e>. Ceci affichera
|
||||
la liste des fichiers du dossier courant, comme si vous aviez tap<61> la
|
||||
commande <20> l'invite du shell. Utilisez :!dir si :!ls ne marche pas.
|
||||
|
||||
Note: Il est possible d'ex<65>cuter n'importe quelle commande externe de cette
|
||||
mani<6E>re.
|
||||
|
||||
Note: Toutes les commandes : doivent finir par la frappe de <Entr<74>e>.
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Le<4C>on 5.2 : PLUS DE D<>TAILS SUR L'ENREGISTREMENT DE FICHIERS
|
||||
|
||||
|
||||
** Pour enregistrer les changements faits au fichier, tapez :w FICHIER . **
|
||||
|
||||
1. Tapez :!dir ou :!ls pour avoir la liste des fichiers du dossier
|
||||
courant. Vous savez d<>j<EFBFBD> qu'il faut appuyer <Entr<74>e> apr<70>s cela.
|
||||
|
||||
2. Choisissez un nom de fichier qui n'existe pas encore, par exemple TEST.
|
||||
|
||||
3. Puis tapez :w TEST (o<> TEST est le nom que vous avez choisi).
|
||||
|
||||
4. Cela sauvegarde tout le fichier (Tutoriel Vim) sous le nom TEST.
|
||||
Pour le v<>rifier, tapez :!dir pour revisualiser le contenu du dossier.
|
||||
|
||||
Notez que si vous quittez Vim et y retournez avec le fichier TEST, celui-ci
|
||||
sera une copie exacte du cours au moment o<> vous l'avez sauv<75>.
|
||||
|
||||
5. Maintenant, effacez le fichier en tapant (MS-DOS): :!del TEST
|
||||
ou (Unix): :!rm TEST
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Le<4C>on 5.3 : UN ENREGISTREMENT S<>LECTIF
|
||||
|
||||
|
||||
** Pour enregistrer une portion de fichier, tapez :#,#w FICHIER **
|
||||
|
||||
1. Tapez <20> nouveau :!dir ou :!ls pour visualiser le contenu du dossier
|
||||
courant et choisissez un nom de fichier, tel que TEST.
|
||||
|
||||
2. D<>placez le curseur jusqu'en haut de cette page et tapez Ctrl-G pour
|
||||
conna<6E>tre le num<75>ro de cette ligne. NOTEZ CE NUM<55>RO !
|
||||
|
||||
3. Puis rendez-vous au bas de cette page et tapez <20> nouveau Ctrl-G .
|
||||
NOTEZ <20>GALEMENT CE NUM<55>RO !
|
||||
|
||||
4. Pour enregistrer SEULEMENT une portion d'un fichier, tapez :#,#w TEST
|
||||
o<> #,# sont les deux num<75>ros que vous avez not<6F>s (haut,bas) et TEST est
|
||||
le nom du fichier.
|
||||
|
||||
5. Une fois encore, v<>rifiez la pr<70>sence du fichier avec :!dir mais NE
|
||||
L'EFFACEZ PAS.
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Le<4C>on 5.4 : R<>CUP<55>RATION ET FUSION DE FICHIERS
|
||||
|
||||
|
||||
** Pour ins<6E>rer le contenu d'un fichier, tapez :r FICHIER **
|
||||
|
||||
1. Tapez :!dir pour v<>rifier que votre fichier TEST est encore l<>.
|
||||
|
||||
2. Placez le curseur en haut de cette page.
|
||||
|
||||
NOTE: Apr<70>s avoir suivi l'<27>tape 3 vous verrez <20> l'<27>cran la Le<4C>on 5.3.
|
||||
D<>placez-vous vers le bas jusqu'<27> revenir <20> cette le<6C>on.
|
||||
|
||||
3. Maintenant r<>cup<75>rez votre fichier TEST en utilisant la commande :r TEST
|
||||
o<> TEST est le nom de votre fichier.
|
||||
|
||||
NOTE: Le fichier que vous r<>cup<75>rez est plac<61> l<> o<> se trouve le curseur.
|
||||
|
||||
4. Pour v<>rifier que le fichier a bien <20>t<EFBFBD> ins<6E>r<EFBFBD>, remontez et v<>rifiez
|
||||
qu'il y a maintenant deux copies de la Le<4C>on 5.3, l'originale et celle
|
||||
contenue dans le fichier.
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
R<>SUM<55> DE LA LE<4C>ON 5
|
||||
|
||||
|
||||
1. :!commande ex<65>cute une commande externe.
|
||||
|
||||
Quelques exemples pratiques:
|
||||
(MS-DOS) (Unix)
|
||||
:!dir :!ls affiche le contenu du dossier courant.
|
||||
:!del FICHIER :!rm FICHIER efface FICHIER.
|
||||
|
||||
2. :w FICHIER enregistre le fichier Vim courant sur le disque avec pour
|
||||
nom FICHIER.
|
||||
|
||||
3. :#,#w FICHIER enregistre les lignes # <20> # dans le fichier FICHIER.
|
||||
|
||||
4. :r FICHIER r<>cup<75>re le fichier FICHIER et l'ins<6E>re dans le fichier
|
||||
courant <20> partir de la position du curseur.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Le<4C>on 6.1 : L'OUVERTURE
|
||||
|
||||
|
||||
** Tapez o pour ouvrir une ligne sous le curseur et y aller en Insertion. **
|
||||
|
||||
1. D<>placez le curseur sur la ligne marqu<71>e ---> ci-dessous.
|
||||
|
||||
2. Tapez o (minuscule) pour ouvrir une ligne SOUS le curseur et vous y
|
||||
placer en mode Insertion.
|
||||
|
||||
3. Puis recopiez la ligne marqu<71>e ---> et appuyez sur <<3C>chap> pour quitter
|
||||
le mode Insertion.
|
||||
|
||||
---> En tapant o le curseur se met sur la ligne ouverte, en mode Insertion.
|
||||
|
||||
4. Pour ouvrir une ligne au DESSUS du curseur, tapez simplement un O
|
||||
majuscule, plut<75>t qu'un o minuscule. Faites un essai sur la ligne
|
||||
ci-dessous.
|
||||
Ouvrez une ligne ci-dessus en tapant MAJ-O lorsque le curseur est ici.
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Le<4C>on 6.2 : L'AJOUT
|
||||
|
||||
|
||||
** Tapez a pour ins<6E>rer du texte APR<50>S le curseur. **
|
||||
|
||||
1. Placez le curseur <20> la fin de la premi<6D>re ligne marqu<71>e ---> ci-dessous
|
||||
en tapant $ en mode Normal.
|
||||
|
||||
2. Tapez un a (minuscule) pour ajouter du texte APR<50>S le caract<63>re situ<74>
|
||||
sous le curseur. ( A majuscule ajoute du texte <20> la fin de la ligne).
|
||||
|
||||
Note: Ceci <20>vite de taper i , le dernier caract<63>re, le texte <20> ins<6E>rer,
|
||||
<<3C>chap>, curseur-<2D>-droite, et finalement x , juste pour ajouter du
|
||||
texte <20> la fin d'une ligne !
|
||||
|
||||
3. Maintenant, compl<70>tez la premi<6D>re ligne. Notez <20>galement que l'ajout est
|
||||
identique au mode Insertion, hormis la position o<> le texte est ins<6E>r<EFBFBD>.
|
||||
|
||||
---> Cette ligne vous permet de pratiquer
|
||||
---> Cette ligne vous permet de pratiquer l'ajout de texte en fin de ligne.
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Le<4C>on 6.3 : UNE AUTRE VERSION DU REMPLACEMENT
|
||||
|
||||
|
||||
** Tapez un R majuscule pour remplacer plus d'un caract<63>re. **
|
||||
|
||||
1. D<>placez le curseur sur la premi<6D>re ligne marqu<71>e ---> ci-dessous.
|
||||
|
||||
2. Placez le curseur au d<>but du premier mot qui diff<66>re de la seconde ligne
|
||||
marqu<71>e ---> (le mot 'celle').
|
||||
|
||||
3. Puis tapez R et remplacez le reste du texte de la premi<6D>re ligne en
|
||||
tapant par dessus celui-ci, de mani<6E>re <20> rendre la premi<6D>re ligne
|
||||
identique <20> la seconde.
|
||||
|
||||
---> Pour rendre cette ligne identique <20> celle du dessous utilisez le clavier.
|
||||
---> Pour rendre cette ligne identique <20> la seconde, tapez R et la correction.
|
||||
|
||||
4. Notez que lorsque vous appuyez <<3C>chap>, le texte qui n'a pas encore <20>t<EFBFBD>
|
||||
remplac<61> reste.
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Le<4C>on 6.4 : R<>GLAGE DES OPTIONS
|
||||
|
||||
|
||||
** R<>glons une option afin que la recherche et la substitution ignorent la
|
||||
casse des caract<63>res. **
|
||||
|
||||
1. Recherchez 'ignore' en tapant /ignore .
|
||||
R<>p<EFBFBD>tez ceci plusieurs fois en utilisant la touche n .
|
||||
|
||||
2. Activez l'option 'ic' (Ignorer casse) en tapant :set ic .
|
||||
|
||||
3. Puis poursuivez votre recherche en utilisant n .
|
||||
R<>p<EFBFBD>tez cette recherche plusieurs fois avec la touche n .
|
||||
|
||||
4. Activez les options 'hlsearch' et 'incsearch' avec :set hls is .
|
||||
|
||||
5. Puis recommencez une recherche, et faites bien attention <20> ce qui se
|
||||
produit: /ignore .
|
||||
|
||||
6. Pour interrompre la mise en surbrillance des r<>sultats, tapez:
|
||||
:nohlsearch
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
R<>SUM<55> DE LA LE<4C>ON 6
|
||||
|
||||
|
||||
1. Taper o ouvre une ligne SOUS le curseur et y place celui-ci en mode
|
||||
Insertion. Taper un O majuscule ouvre une ligne au DESSUS de la ligne
|
||||
o<> se trouve le curseur.
|
||||
|
||||
2. Tapez un a pour ins<6E>rer du texte APR<50>S le caract<63>re o<> se trouve le
|
||||
curseur. Taper un A majuscule ajoute du texte automatiquement <20> la fin
|
||||
de la ligne.
|
||||
|
||||
3. Taper un R majuscule active le mode Remplacement jusqu'<27> ce que la
|
||||
touche <<3C>chap> soit appuy<75>e pour en sortir.
|
||||
|
||||
4. Taper :set xxx active l'option 'xxx'.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Le<4C>on 7 : ACC<43>DER <20> L'AIDE EN LIGNE
|
||||
|
||||
** Utiliser le syst<73>me d'aide en ligne. **
|
||||
|
||||
Vim a un syst<73>me complet d'aide en ligne. Pour y acc<63>der, essayez l'une de
|
||||
ces trois m<>thodes:
|
||||
- appuyez la touche <Help> (si vous en avez une)
|
||||
- appuyez la touche <F1> (si vous en avez une)
|
||||
- tapez :help <Entr<74>e>
|
||||
|
||||
Tapez :q <Entr<74>e> pour fermer la fen<65>tre d'aide.
|
||||
|
||||
Vous pouvez acc<63>der <20> l'aide sur <20> peu pr<70>s n'importe quel sujet en donnant
|
||||
des arguments <20> la commande :help . Essayez par exemple (n'oubliez pas
|
||||
d'appuyer sur <Entr<74>e>):
|
||||
|
||||
:help w
|
||||
:help c_<T
|
||||
:help insert-index
|
||||
:help user-manual
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Le<4C>on 8 : CR<43>ER UN SCRIPT DE D<>MARRAGE
|
||||
|
||||
** Activer les fonctionnalit<69>s de Vim. **
|
||||
|
||||
Vim a beaucoup plus de fonctionnalit<69>s que Vi, mais la plupart de celles-ci
|
||||
sont d<>sactiv<69>es par d<>faut. Pour commencer <20> les utiliser, vous devez
|
||||
cr<63>er un fichier "vimrc".
|
||||
|
||||
1. Commencez <20> <20>diter le fichier "vimrc". Ceci d<>pend de votre syst<73>me:
|
||||
:edit ~/.vimrc pour Unix
|
||||
:edit $VIM/_vimrc pour MS-Windows
|
||||
|
||||
2. Int<6E>grez maintenant le texte du fichier "vimrc" d'exemple:
|
||||
:read $VIMRUNTIME/vimrc_example.vim
|
||||
|
||||
3. Enregistrez le fichier avec:
|
||||
:write
|
||||
|
||||
La prochaine fois que vous d<>marrerez Vim, le surlignage syntactique sera
|
||||
activ<69>. Vous pouvez ajouter tous vos r<>glages pr<70>f<EFBFBD>r<EFBFBD>s dans ce fichier.
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Ceci conclut le Tutoriel Vim. Le but <20>tait de vous donner un bref aper<65>u de
|
||||
l'<27>diteur Vim, juste assez pour vous permettre d'utiliser l'<27>diteur
|
||||
relativement facilement. Il est loin d'<27>tre complet, vu que Vim a beaucoup
|
||||
beaucoup plus de commandes. Un Manuel de l'utilisateur est disponible en
|
||||
anglais: :help user-manual .
|
||||
|
||||
Pour continuer <20> d<>couvrir et <20> apprendre Vim, il existe un livre traduit en
|
||||
fran<61>ais. Il parle plus de Vi que de Vim, mais pourra vous <20>tre utile.
|
||||
L'<27>diteur Vi - Collection Pr<50>cis et concis - par Arnold Robbins
|
||||
<09>diteur: O'Reilly France
|
||||
ISBN: 2-84177-102-4
|
||||
|
||||
Deux livres en anglais sont <20>galement mentionn<6E>s dans la version originale
|
||||
de ce tutoriel, dont un qui traite sp<73>cifiquement de Vim. Merci de vous y
|
||||
r<>f<EFBFBD>rer si vous <20>tes int<6E>ress<73>.
|
||||
|
||||
Ce tutoriel a <20>t<EFBFBD> <20>crit par Michael C. Pierce et Robert K. Ware de l'<27>cole
|
||||
des Mines du Colorado et reprend des id<69>es fournies par Charles Smith,
|
||||
Universt<73> d'<27>tat du Colorado. E-mail: bware@mines.colorado.edu.
|
||||
|
||||
Modifi<66> pour Vim par Bram Moolenar.
|
||||
|
||||
Traduit en Fran<61>ais par Adrien Beau, en avril 2001.
|
||||
E-mail: version.francaise@free.fr
|
||||
Last Change: 2003 May 29
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
Reference in New Issue
Block a user