Vous êtes sur la page 1sur 7

Utilisation de vi, vim et gvim

c G. Landa,
landa@laas.fr
version 1.0
4 mai 2005
1 Introduction
vi est lediteur unix de base, vim est vi ameliore, gvim est le meme agremente
dune couche graphique.
Pour lancer vim sur un chier : vim toto
Pour lancer vim sur plusieurs chiers :vim toto tata titi, on passe dun buer ` a
lautre avec :n (vers lavant) ou :N (vers larri`ere)
Une sauvegarde automatique du buer courant se trouve dans .toto.swp. Apr`es un
crash on peut tenter de recuperer le chier avec la commande vim -r toto.
2 Les dierents modes
mode commande
mode insertion de texte
Au demarrage lediteur est en mode commande, pour passer en mode insertion il
faut taper la commande i, pour en sortir appuyer sur la touche ESC.
:w pour sauver sans sortir
:w toto pour sauver sous le nom toto
:x pour sauver et sortir ou :wq
:q ! pour sortir sans sauver
3 Les deplacements
h deplace le curseur vers la gauche
l deplace le curseur vers la droite
j deplace le curseur vers le bas
k deplace le curseur vers le haut
. designe la ligne courante
0 va en debut de ligne
1
G. Landa, Aide-memoire vim 2
$ va en n de ligne
I insertion en debut de ligne (Insert)
A insertion en n de ligne (Append)
w avance dun mot (word)
b recule dun mot (back)
:n va ` a la ligne n
{ debut de paragraphe
} n de paragraphe
( debut de phrase
) n de phrase
G va ` a la n du chier
* le curseur etant sur un mot, permet davancer ` a loccurrence suivante du mot
(rem : N*)
# idem en reculant (rem : N#)
% si le curseur est positionne sur (, {, [, on avance ` a ), }, ] (tr`es utile en program-
mation!)
remarque : on peut repeter N fois la plupart des commandes precedentes par exemple
Nl deplace le curseur de N caract`eres vers la droite. d} eace jusqu` a la n du paragraphe,
c2) supprime les 2 prochaines phrases et passe en mode insertion, 3{ remonte au debut
du 3`eme paragraphe precedent.
4 Commandes utiles dans les combinaisons
x eace le caract`ere sous le curseur
d eacer
c changer
y copier (yank)
r remplacer un caract`ere
R remplacer plusieurs caract`eres
s eacer un caract`ere et passer en mode insertion
D eacer la n de ligne
C changer la n de ligne
o ouvrir une ligne apr`es la ligne courante
O ouvrir une ligne avant la ligne courante
exemples :
dw eace la n du mot, dd eace la ligne,
pour changer la n dun mot, on se place ` a lendroit ` a modier, on tape cw et on ecrit le
nouveau mot
cc vide la ligne
yw copie un mot dans le tampon
yy ou Y copie une ligne dans le tampon
p colle le tampon (paste) apr`es le curseur
P colle le tampon sur le curseur
ddp permet dinverser deux lignes
remarque : on peut repeter N fois les commandes precedentes par exemple Ndd eace N
G. Landa, Aide-memoire vim 3
lignes.
5 Mode visuel
Plusieurs fa cons de selectionner une portion de texte.
v permet de passer en mode visuel, les deplacements habituels permettent de selectionner
le texte
V mode visuel ligne ` a ligne
CTRL v mode visuel en bloc (utile pour des portions de tableaux)
6 Recherche / Remplacement
/mod`ele cherche le mod`ele vers lavant
?mod`ele cherche le mod`ele vers larri`ere
n cherche loccurrence suivante
N cherche loccurrence precedente
:s/mod`ele/substitut/ remplace le texte du mod`ele pour la premi`ere occurrence
dans la ligne
:s/mod`ele/substitut/g remplace le texte du mod`ele pour toute la ligne
:s/mod`ele/substitut/gc remplace le texte du mod`ele pour toute la ligne mais
demande conrmation
:%s/mod`ele/substitut/g remplace le texte du mod`ele dans tout le chier
:. ;+4s/mod`ele/substitut/g remplace le texte du mod`ele dans la ligne courante
et les 4 suivantes
remarques : dans le mod`ele, les caract`eres $.*\/ doivent etre precedes de \ an
dannuler leurs eets.De plus si \c est dans le mod`ele alors la casse est ignoree, au contraire
si cest \C la casse est respectee scrupuleusement. d/toto eace le texte jusqu` a toto (non
compris).
7 Les registres
Ce sont des memoires temporaires dans lesquelles on peut stocker de linformation.
Chaque registre est identie par un caract`ere (ex : a, b, 0, 1, Z, /, % . . . )
On fait reference ` a un registre en faisant preceder son caract`ere dappel par .
ayy copie la ligne courante dans le registre a
ap en mode commande ou CTRL R a en mode insertion, colle le contenu du
registrea
Adw coupe le mot sous le curseur et lajoute au registre a (on utilise la lettre
majuscule du registre)
:registers ache le contenu de tous les registres
est le registre courant (unamed register)
0 est le registre contenant le dernier yank (copie)
G. Landa, Aide-memoire vim 4
8 Le Repliement des lignes
Pour creer une zone de repliement de lignes :
selectionner la zone en mode visuel (commande v )
utiliser la commande zf pour creer le repliement
zo ouvre un repliement
zc referme un repliement
9 Gestion des fenetres
CTRL w n : cree une fenetre horizontale vide
:split : cree une fenetres horizontale avec le meme chier
CTRL w v ou CTRL w CTRL V ou vsplit : cree une fenetre verticale avec le
meme chier
CTRL w + ou CTRL w - redimensionnement horizontal
CTRL w ou CTRL w redimensionnement vertical
CTRL w K ou J ou H ou L permet de passer dune fenetre ` a lautre
10 Les macros
qZ lance lenregistrement de la macro dans le registre Z; q n denregistrement
@Z execute la macro contenue dans le registre Z
:so chier.vim chargement dun chier de macros
Pour modier une macro :
Se placer sur une ligne vide, acher la sequence de la macro Zp, modier la macro
` a volonte, restocker la macro dans son registre Zy$
11 Mappage des touches clavier
exemple : pour commenter une ligne en langage C :
:map <F12> 0i/* <ESC> $a*/ <ESC>
remarque : dans le mapping ci-dessus, <F12> est reellement la suite des 5 caract`eres
<F12>
12 Abreviations
:ab 3to tototo chaque chaque fois que lon tape 3to vim le remplace par tototo (mode
insertion et mode commande)
:ia 3to tototo chaque chaque fois que lon tape 3to vim le remplace par tototo (mode
insertion uniquement)
:ca 3to tototo chaque chaque fois que lon tape 3to vim le remplace par tototo (mode
commande uniquement)
G. Landa, Aide-memoire vim 5
13 Comparaison de chiers (mode di)
Lancer la commande : vim -d chier1 chier2
On peut aller jusqu` a 4 chiers. La commande :args permet dacher liste de chiers
charges aux lancement de gvim.
Si on modie un des chiers, on peut mettre ` a jour la comparaison avec :diupdate
:dipatch : prend en argument un patch existant sur le syst`eme, patche le buer
courant et ouvre une nouvelle fenetre contenant le nouveau chier
remarque : vim passe automatiquement en mode :scrollbind an de lier les deplacements
entre les deux fenetres.
14 Historique des commandes
q : ache une fenetre avec lhistorique des commandes
q/ cherche dans lhistorique
15 Impression
La commande :hardcopy permet denvoyer ` a limprimante (par defaut lpr), la colo-
ration syntaxique est preservee.
16 Gestion des vues
:mkview /.vim/toto.vim enregistre un environnement dedition (chiers, map-
ping, pliures, position du curseur, repertoires en cours, changements)
:loadview
remarque : sans argument, par defaut le syst`eme peut stocker 10 vues dierentes,
17 Digraphs
:digraphs Ache les codes permettant lacc`es aux caract`eres qui ne sont pas au
clavier.
:digraphs ye 165 aecte le code ascii 165 ` a la sequence ye.
Pour inserer un digraph taper CTRL k + code,
exemple : CTRL k Co pour le copyright c .
G. Landa, Aide-memoire vim 6
18 Divers
CTRL u (en mode insertion) eace les caract`eres avant le curseur dans la ligne
courante
u annule la derni`ere commande
redo ou CTRL r annule la derni`ere annulation
retourne ` a la position precedent le dernier deplacement
. rep`ete la derni`ere commande
J colle la ligne suivante ` a la ligne courante
permet de changer la casse
gq associe ` a un deplacement permet de reformatter le texte, exemple gq} reformatte
jusqu` a la n du paragraphe
:2,4co6 copie les lignes 2 ` a 4 apr`es la ligne 6
:.,+2mo3 deplace la ligne courante et les deux suivantes ` a apr`es la ligne 3
19 Completion
CTRL p permet de completer le mot en cours decriture
CTRL x CTRL n ou CTRL x CTRL p compl`etent avec les mots du chiers
courant
CTRL x CTRL l compl`ete avec une ligne enti`ere
CTRL x CTRL t compl`ete en utilisant le Thesaurus
CTRL x CTRL k compl`ete en utilisant le Dictionnaire
CTRL x CTRL i compl`ete en utilisant le chier courant et les includes
CTRL x CTRL ] compl`ete en utilisant les tags
CTRL x CTRL f compl`ete en utilisant les noms de chiers
CTRL x CTRL d compl`ete en utilisant les noms de macro
CTRL x CTRL v compl`ete avec les commandes vim
20 Utilisation des ancres
Une ancre ou marque est referencee par une lettre [a-zA-Z].
mz pose une ancre referencee par z
z va ` a la ligne contenant la marque z
z va ` a la ligne et colonne contenant la marque z
exemples :
dz eace tout jusqu` a la marque z
:.,xs/

/#/ introduit un # en debut de ligne pour toutes les lignes comprises entre
la ligne courante et lancre x
:.,as/toto/titi/g remplace tous les toto par titi entre la ligne courante et lancre a.
G. Landa, Aide-memoire vim 7
21 Conguration
Un grand nombre de param`etres peuvent etre modies.
:set list permet dacher tous les caract`eres y compris ceux de contr ole
:syntax on active la coloration syntaxique
:set nocp mode non-compatible vi (en fait cest le mode le plus complet)
:set tw=72 ins`ere un CR au-del` a de 72 caract`eres, si on ne precise pas de nombre,
ache la valeur actuelle (text width)
:set ic (ou set noic) mode ignore la casse pour les recherches
set autoindent (ou noautoindent) garde lindentation
:set shiftwidth=8 specie la valeur de lindentation
remarques : == permet dindenter comme le voisinage ; 6== idem pour les 6 lignes
suivantes ; 4>> indente les 4 lignes ` a partir du curseur ; > indente le texte selectionne
vers la droite ; < decale le texte selectionne vers la gauche ; on peut utiliser = avec un
deplacement ; par exemple =G indente jusqu`e` a la n du chier.
On peut stocker les commandes dans le chier .vimrc
22 Interaction avec dautres programmes
avec la commande less, si on tape v le buer est envoye dans vi
vim http ://www.toto.fr/index.php charge index.php dans vi
: !commande permet de lancer une commande du shell (ex : : !ls -l)
: !bash permet de lancer un shell complet
:r toto permet dinserer le chier toto
:r ! date permet dinserer la date du syst`eme
:r !ls -l permet dinserer la liste des chiers du repertoire courant

Vous aimerez peut-être aussi