©
. Document créé le 11 novembre 2005 , mis à jour le 29 août 2010.Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire. Joseph Joubert
Accueil du site > Astuces > VIM > Les commandes clavier de l’éditeur vim
view est un lien sur vim, comme vi, ex, etc. Les commandes claviers sont donc communes.
view est un vi sans fonction d’écriture. Un vi en mode lecture seule. Que l’on peut forcer avec le bang (!).
Sous MacOsX, gvim n’est pas disponible. C’est MacVim qui vous rendra ce service. L’utilisation de vim sous l’environnement graphique du Mac. Si vous installez MacVim via les ports, MacVim.app est recopié dans votre dossier Applications/MacPorts.
Komodo Edit propose le mode vi pour son éditeur. Menu Préférences, déplier Editor, Sélectionner KeyBindings, cocher la case Enable Vi emulation.
En mode insertion, ce que vous tapez sur le clavier apparaît à l’écran vi, au fur et à mesure de la frappe.
Le mode commande permet de naviguer dans le fichier courant (celui ouvert lors du lancement de vi) ou entre plusieurs fichiers, de lancer certaines commandes plus ou moins complexes ou délicates sur la ligne de commande.
Pour quitter le mode insertion, pressez simplement la touche Esc. Pour retourner dans le mode insertion, pressez la touche i pour insérer du texte à partir de la position courante du curseur.
Les commandes simples de navigation ne nécessitent pas de passer en mode ligne de commande, il suffit de presser la touche correspondante. C’est le cas par exemple de i qui permet d’insérer du texte à la position courante du curseur.
Par contre, pour les commandes plus complexes, il faut précéder sa commande du caractère " :" (deux points), " !" (point d’exclamation) ou "/" (barre oblique) afin de passer sur la ligne de commande. Le curseur se positionne en bas de l’écran où l’on y retrouve ce caractère " :" qu’il faut compléter par la commande souhaitée puis valider la ligne en pressant la touche "entrée". Si vous ne voulez pas valider la ligne de commande, il suffit de presser la touche Esc. Si vous avez fait une erreur, vous pouvez annuler la précédente manipulation en pressant le touche u.
Petit lexique des commandes disponibles dans ex, vi, vim, gvim :
Pour déplacer le curseur dans un document ouvert, vous devez être en mode commande. Si vous êtes en mode insertion, presse Esc pour passer en mode commande.
Pour effectuer une recherche dans le texte courant (celui affiché à l’écran de vi), vous devez être en mode commande. | |
/<texte> | La barre oblique qui précède apparaît dans la ligne de recherche en bas d’écran lors de la frappe. Si elle apparaît dans le texte courant, c’est que vous êtes en mode insertion. Pour sortir de ce mode insertion, pressez Esc. |
? | Cherche l’occurrence avant la position courante du curseur. |
/ | Après une première recherche (voir ci-dessus), cherche l’occurrence suivante. |
n | ’ (idem) |
a | Ajouter du texte après le curseur. |
A | Ajouter du texte à la fin de la ligne courante. |
i | Ajouter du texte à la position du curseur. |
I | i en capitale. Ajouter du texte au début de la ligne courante. |
J | Joint la ligne suivante à la fin de la ligne courante. |
o | Ajouter une nouvelle ligne après la position du curseur et se placer en mode insertion au début de cette nouvelle ligne. |
O | Ajouter une nouvelle ligne avant la position du curseur et se placer en mode insertion au début de cette nouvelle ligne. |
r | Remplace le caractère sous le curseur. |
C | Bascule en mode remplacement (au lieu d’insertion) pour la ligne courante jusqu’à appui de la touche Esc. |
R | ’ idem C |
u | Restaurer (undo). Annuler derlière modification. |
U | Restaurer la ligne courante. |
Pour quitter le mode insertion et repasser en mode commande, pressez la touche Esc. | |
:r | Ajoute le fichier courant au fichier courant, à la position du curseur. |
:r <filename> | Ajoute le fichier ’filename’ au fichier courant, à la position du curseur. |
. | Répète la dernière commande. |
Tilde. Modifie la casse (minuscule/majuscule) du caractère courant. Précéder d’un chiffre n pour modifier les n caractères suivants. | |
& | Répète la dernière commande de substitution. |
>> | Décale le texte à droite. Si x avant, décale les x lignes suivantes, à partir de la position du curseur. |
>/<texte> | Décale le texte à droite jusqu’à rencontrer le texte <texte>. |
<< | Même principe que ’>>’, mais décalage à gauche. |
</<texte> | Même principe que ’>/<texte>’ avec décalage à gauche. |
Pour copier/coller du texte, vous devez être en mode commande. Si vous êtes en mode insertion, presse Esc pour passer en mode commande. | |
cc | Supprime le texte de la ligne courante et positionne le curseur au début de cette ligne. |
d^ | Couper du début de la ligne jusqu’au curseur. |
dd | Couper (supprimer) la ligne de texte qui se trouve sous le curseur. Si vous voulez couper plusieurs lignes en même temps, précédez dd du nombre de lignes concernées. Par exemple ’8dd’ coupe la ligne où se trouve le cuseur, et les 7 lignes suivantes, et les recopient dans le tampon. A noter que d8d et 8dd signifient la même chose. |
dw | Couper (supprimer) un mot. Dans le même esprit que ci-dessus, 4dw supprime les 4 mots qui suivent le curseur. 4dW prendra en compte les apostrophes et les tirets. A noter que d4w et 4dw signifient la même chose. |
d / <motif> | Coupe le texte à partir de la position courante du curseur et jusqu’à l’apparation du texte <motif>. |
yy | Copier la ligne de texte qui se trouve sous le curseur. Si vous voulez copier plusieurs lignes en même temps, précédez yy du nombre de lignes concernées. Par exemple ’8yy’ copie la ligne où se trouve le cuseur, et les 7 lignes suivantes, dans le tampon. |
x | Couper (supprimer) le caractère qui se trouve sous le curseur. Là aussi, vous pouvez faire précéder x du nombre de caractères souhaités. |
p | Coller le texte copié (ou coupé) précédemment après la ligne où se trouve le curseur. Ce texte peut être le caractère coupé par la commande x, la ligne supprimée par le commande dd ou la ligne copiée par yy. |
C | Sélectionne de la position courante à la fin de la ligne et permet la substitution du texte. |
D | Supprime le texte de la position courante du curseur à la fin de la ligne. |
Pour sauvegarder ou quitter vi, vous devez être en mode commande. Si vous êtes en mode insertion, presse Esc pour passer en mode commande.
:w | Sauvegarde le fichier courant. Le nom de fichier orginal est conservé. |
:w ! | Force la sauvegarde du fichier courant (cas par exemple lorsqu’on lance vi via view). Le nom de fichier orginal est conservé. |
:w <filename> | Sauvegarde le fichier courant sous le nom de fichier <filename>. |
:w >> <filename> | Rajoute au fichier <filename> le fichier courant. |
:wq | Sauvegarde le fichier courant et quitte vi. Le nom de fichier orginal est conservé. |
:wq <filename> | Sauvegarde le fichier courant sous le nom de fichier <filename> et quitte vi. |
:q | Quitte vi. Si un fichier en cours a été modifié, vi prévient l’utilisateur. |
:q ! | Abandon de vi. Quitte sans sauvegarder. |
Voir également la commande :r qui permet de lire un fichier et de l’insérer dans l’édition courante. |
Vous devez simultanément presser la touche Ctrl et le caractère de commande pour obtenir l’effet désiré, le tout en mode commande. Si vous êtes en mode insertion, presse Esc pour passer en mode commande.
Vous pouvez entrer le caractère en majuscule ou en minuscule. Le résultat est identique.
^A | Renvoie le curseur sur la prochaine occurrence du mot se trouvant actuellement sous le curseur. Si manquant, recommence la recherche à partir du début du fichier. |
^B | Remonte d’une page. Pour remonter de plusieurs pages, précéder d’un chiffre : le nombre de pages souhaité. |
^D | Défilement de l’écran, déplace le curseur d’une ligne. Précédé d’un chiffre (nombre de lignes), la commande déplacera d’autant la position du curseur. |
^E | Identique ^d en essayant de ne pas déplacer le texte. |
^F | Pour remonter de plusieurs pages, déplace le curseur d’un écran. Précédé d’un chiffre (nombre d’écrans), la commande déplacera d’autant la position du curseur. |
^G | Affiche le nom du fichier, son état, la position du curseur (numéro de ligne courant sur nombre total de lignes). |
^H | Identique h. Déplace le curseur d’un caractère sur le gauche. |
^J | Identique j. Déplace le curseur d’un caractère vers le bas. |
^N | Déplace le curseur d’un caractère vers le bas. En mode insertion, appelle l’auto-complétion. |
^L | Rafaichissement (reconstruit l’affichage, pratique lorsque les messages systèmes redirigés sur votre terminal vous empêchent de travailler correctement). |
^R | ’ (idem) |
^M | Identique +. |
^P | Identique k. Déplace le curseur d’un caractère vers le haut. En mode insertion, appelle l’auto-complétion. |
^T | Retour au dernier tag. |
^U | Défilement de l’écran, en arrière par bloc de lignes, du texte. |
^W | Déplacement entre écrans si présents. |
^Y | Défilement en arrière, ligne par ligne. |
^Z | Passe en mode pause. Suspend l’édition courante. |
Certains caractères permettent de passer en mode commande, avec l’accord de l’administrateur de la machine.
: ! | Le caractère ’ :’ (deux points) suivi du ’ !’ (point d’exclamation) permet d’afficher le résultat de la commande shell au bas de la fenêtre sans modifier votre fichier. Pressez Esc pour revenir au mode précédent. |
!! | Deux points d’exclamation qui se suivent permettent d’insérer le résultat de la commande shell dans la fenêtre d’édition. Par exemple, ’ !!date’ insére la date courante à la position du curseur (remplace la ligne courante). |
La ligne de commande propose un outil puissant de substitution :
:s/celi/cela/ | Placé sur la bonne ligne, ceci sera remplacé par cela. Les autres lignes ne sont pas modifiées. |
:$s/ceci/cela/ | Le ’s’ précédé par ’$’ (symbole dollar) : la modification sera appliquée à la dernière ligne du fichier (substitution sélective). |
:%s/ceci/cela/ | Le ’s’ précédé par ’%’ (symbole pour cent) : la modification sera appliquée à l’ensemble du fichier (substitution globale). |
vim permet de travailler sur plusieurs fichiers en même temps. Par exemple en lançant sous shell ’vi fichier1 fichier2 fichier3’.
:e# | Passe d’un fichier en mémoire au suivant. |
:n | Passe au fichier suivant dans la liste des fichiers ouverts. |
:e <fichier-Y> | Ouvre le fichier <fichier> en édition. |
:args | Liste des fichiers ouverts en mémoire. |
Les forums sont fermés.