Dans ce tutoriel nous allons voir les fonctions de bases qui vous permettront de maitriser VIM sous linux. Vim est aussi disponible sur les autres plateformes Windows et Mac OS.
Avant de commencer et pour mieux comprendre la suite, vous devez savoir que sur Vim, on a 3 modes principaux :
- Le mode normal – qui nous permet de nous déplacer dans notre fichier texte, mais aussi de faire quelques modifications comme supprimer des mots, remplacer des caractères…
- Le mode insertion – qui nous permets d’insérer du texte comme on le ferait avec un éditeur de texte normal.
- Le mode commande – qui nous permet de rentrer des commandes que l’on verra après.
MODE NORMAL DE VIM
Se déplacer dans Vim
- Les touches hjkl permettent de se déplacer en mode normal exactement de la même manière que les flèches gauche, bas, haut et droite
- h : se déplacer à gauche (équivalent de la flèche gauche)
- j : se déplacer en bas (équivalent de la flèche bas)
- k : se déplacer en haut (équivalent de la flèche haut)
- l : se déplacer à droite (équivalent de la flèche droite)
- 0 : aller au début de la ligne (on peut aussi utiliser la touche ^)
- $ : aller à la fin de la ligne
- gg : aller à la première ligne du document
- G : aller à la dernière ligne du document (il s’agit bien de taper G majuscule)
- 34G : Aller à la ligne n°34 (7G permet d’accéder directement à la ligne 7 de votre fichier)
- b : aller de mot en mot vers la gauche
- w : aller de mot en mot vers la droite
- 2w : en mode normal -> déplace le curseur au début du 3eme mot
- 2d : en mode normal -> déplace le curseur à la fin du 2eme mot
- ctrl+f : permet de descendre le curseur d’une page
- ctrl+b : permet de monter le curseur d’une page
- zz : permet de faire remonter/descendre la ligne où se trouve le curseur au milieu de la fenêtre
- z+Entrée : la touche z suivit de la touche entrée fait remonter la ligne où se trouve le curseur en première position
- f + caractère : déplace le curseur jusqu’au caractère tapé après le f.
EFFACER / REMPLACER DES CARACTERES, DES MOTS OU DES LIGNES
x : pour effacer un caractère on peut également effacer 2 lettres directement en tapant 2x. De la même manière 7x supprime 7 caractères.
X : efface un caractère situé à gauche du curseur (équivalent de BACKSPACE)
dw : efface un mot a partir du curseur -> si on place le curseur à la première lettre du mot tout le mot est effacé, si on place le curseur par exemple à la deuxième lettre du mot, tout le mot est effacé sauf la premiere lettre…
diw : supprime un mot en entier peu importe la position du curseur sur le mot (Delete Inner Word)
de : efface un mot comme dw sauf que ça n’efface pas l’espace après le mot suivant
daw : fait la même chose que diw mais supprime l’espace avant (Delete A Word)
2dw : efface 2 mots à partir du curseur (de la même manière 5dw supprime 5 mots)
dd : efface une ligne (2dd efface 2 lignes)
d0 : efface du curseur jusqu’au début de la ligne. Il s’agit du chiffre zéro et non pas de la lettre o (d^ fait la même chose)
d$ : efface du curseur jusqu’à la fin de la ligne
D : comme d$, ça efface du curseur jusqu’à la fin de la ligne
r : suivit d’une lettre pour remplacer une lettre -> rx remplace la lettre ou on a le curseur par x
~ : convertir un caractère en majuscule si celui-ci et en minuscule et inversement.
COUPER / COPIER / COLLER
On vient de voir à l’instant comment effacer un caractère, un mot ou une ligne. En fait, une fois effacé, le caractère, le mot ou la ligne reste dans le presse papier. Il suffit de taper sur la touche « p » où l’on souhaite pour copier. C’est un peu l’équivalent d’un COUPER/COLLER 🙂
p : permet de coller ce l’on vient d’effacer (si on tape 5p, ça va copier 5 fois!)
yy : permet de copier directement toute un ligne
yw : copier un mot à partir du curseur (si le curseur se trouve à la 3ème lettre du mot, les deux premières lettre ne seront pas copiées. Pour copier un mot entier, il faut que le curseur soit sur la première lettre).
yiw : permer de copier un mot entier peu importe la position du curseur
yW : c’est la même chose que yw sauf que celui-ci ne considère pas les signes de ponctuation comme étant un mot et le copie donc avec le mot
yiW : si on prends l’exemple d’une adresse IP 192.168.1.1, peu importe la position du curseur, ça copiera toute l’adresse IP
y$ : copier du curseur jusqu’à la fin de la ligne
p : du coup permet aussi de coller ce que l’on vient de copier 😉
ANNULATION / REVENIR EN ARRIERE
u annule la dernière commande en mode normal
U remet une ligne dans son état initial
RECHERCHER DANS VIM
/mot_a_rechercher : recherche un mot dans le fichier
n : pour rechercher le mot suivant (on tape pas sur la touche Entrée plusieurs fois comme c’est le cas parfois lorsque l’on fait une recherche).
N : pour rechercher le mot précédent.
:s/ancien_mot/nouveau_mot : remplace un seul mot par un autre. Juste un mot à partir du curseur
:s/ancien_mot/nouveau_mot/g : remplace un mot par autre mais cette fois sur toute la ligne ou se trouve le curseur
:%s/ancien_mot/nouveau_mot/g : remplace un mot par un autre dans tous le document
:#,#s/ancien_mot/nouveau_mot/g : remplace un mot par un autre de la ligne n°# à n°# du fichier.
MODE INSERTION DE VIM
i : pour activer le mode insertion à partir de la position du curseur
A : pour insérer à partir de la fin de la ligne
a : pour activer le mode insertion après la position courante
o : active le mode insertion et rajoute une ligne après
O : active le mode insertion et rajoute une ligne avant
ce : ça fait la meme chose que de (cw ça fait la même chose que dw) sauf que une fois les caractères effacés, on passe automatique en mode insertion
ciw : supprime un mot et passe en mode insertion (Change A Word)
ESC : la touche Echap permet de quitter le mode insertion pour revenir au mode normal
MODE COMMANDE DE VIM
Pour passer du mode normal au mode commande il suffit de taper le signe deux points « : » puis de taper une commande
ENREGISTRER / QUITTER
:q! : quitter sans enregistrer
:w : permet d’enregistrer sans quitter VIM
:q : permet de quitter le fichier (mais ne fonctionne pas si l’on a pas enregistré notre fichier avant)
:wq : enregistrer et quitter le fichier ouvert avec VIM (on peut aussi faire 😡 ou encore taper en mode normal ZZ en majuscule pour faire la même chose)
ACTIVER/DESACTIVER DES OPTIONS
Pour activer une option il faut taper « :ser » suivit du nom de l’option =>
Voici la synthax :
:set option (en remplaçant option par le nom de l’option)
:set nooption => en rajoutant « no » devant le nom de l’option ça désactive l’option
:set option! => permet d’activer une option si celle-ci est désactivé et inversement
:set option? => pour connaitre l’état d’une option (toujours en remplaçant option par le nom de l’option)
:set syntax=ON => pour activer la coloration synthaxique
:set number => pour afficher les numéros de ligne
:set mouse=a => pour activer la souris
:set ignorecase => ignorer la casse lors d’une recherche (pour ceux qui ne comprenne pas, ça ne prends pas en compte si on tape une majuscule ou minuscule lors d’une recherche)
:set ruler => permet d’afficher la position du curseur
Si vous souhaitez activer ces options de façon permanente, il faut creer un fichier de configuration .vimrc ou le copier : cp /etc/vim/vimrc ~/.vimrc
Obtenir de l’aide
:help => permet d’afficher l’aide (:q permet de sortir de l’aide)
Lorsque l’aide est afficher, le terminal est scinder en deux, d’une part, l’aide et juste en dessous notre fichier.
Les combinaison de touche ctrl+w (il faut taper deux fois) nous permet de passer de l’aide à notre fichier.
:help suivit de la commande permet d’afficher de l’aide pour cette commande
Tabulation et CTRL+D
BONUS
. permet de répéter une commande
0 commentaires