Dominique.fournier38.fr

Mémo Vim

Page d'accueil
Ceci n'est pas le manuel officiel de Vim. Il s'agit plutôt d'une liste des commandes principales regroupées sur un page.
Ces commandes me servent tous les jours et cette page me sert de pense-bête.

Insertion

Le mode insertion permet d'éditer un fichier. On sort du mode insertion en appuyant sur Esc (on revient alors en mode commande)
i : insere a la postion du curseur
I : insere au debut de la ligne
a : insere a la position a droite du curseur
A : insere a la fin de la ligne
J : Joint la ligne suivante au bout de la ligne courante

Enregistrement et sortie

:w : sauvegarde le fichier
:w nomfich : sauvegarde le fichier sous le nom nomfich
(ATTENTION APRES ON N'EDITE PAS nomfich !!! ON CONTINUE AVEC L'ANCIEN !!)
:q quitte sans sauver (signale si fichier modifie avant de quitter)

:q! quitte sans sauver et sans signal de fichier modifie
:x ou :wq : sauve et quitte

Définition du type de fichier

Ceci redéfinit le type de fichier si nécessaire
:set fileformat=unix
:set fileformat=dos

Déplacement

/mot : Cherche le mot "mot"
:20 : Va à la ligne numéro 20
20| : Va à la 20è colonne sur la ligne
k : Déplace le curseur vers le haut (ou utiliser les flèches si elles fonctionnent)
l : Déplace le curseur vers la droite (ou utiliser les flèches si elles fonctionnent)
j : Déplace le curseur vers le bas (ou utiliser les flèches si elles fonctionnent)
h : Déplace le curseur vers la gauche (ou utiliser les flèches si elles fonctionnent)
G : Déplace le curseur à la fin du fichier
'. : Retourne à la dernière ligne modifiée
`. ou g; : Retroune au dernier caractère modifié

Définition des variables set

:set {no}qqchose : définit (ou annule) une fonctionnalité de vim
:set ic : Rend les recherches insensibles à la casse

Alignement

:set textwidth=80 : Largeur d'une ligne du fichier (si la ligne est trop longue, vim renvoie a la ligne automatiquement EN MODE INSERTION !!)
:{range}center [width] : aligne au centre selon la range choisie et width indique la largeur de la page.
:center : aligne le texte tape au centre.
:right : aligne le texte a droite
:left : aligne le texte a gauche

Indentation

:set nocindent : Enleve l'indentation pour les programmes en C (Utile avant un copy souris)
:set noautoindent : Enleve l'indentation pour les programmes en C (Utile avant un copy souris)
:set nopaste : Enleve l'indentation pour les programmes en C (Utile avant un copy souris)
:set autoindent : Indentation automatique
:set shiftwidth=4 : Largeur de l'indent (8 car. par defaut)
:set softtabstop=4 : Largeur de l'indent quand on pose un TAB

:set tabstop=3 -\ Realigne un code en tabulation a la valeur 3 a la place de
:retab 8       -/ la valeur 8

/* vim: set ts=4 sw=4: */ : Placé en tete d'un fichier PHP, il est recallé avec 4 cars. par TAB!!!
1GVG= : indente le code du fichier complet

Remplacement

:[range]s/from/to/[flags]
flags interressants :
     g : pour toutes les occurences sur la ligne
     c : demande la validation de la modification
from : pattern
     :s/^the/these/ : recherche en debut de ligne
range :
     :1,5s/this/that/g : change sur les lignes 1 a 5
     :.,$s/yes/no/ : change depuis la ligne courante jusqu'a la fin du
fichier
definir des marques :
mt : mark top (marque le sommet du bloc)
mb : mark bottom (marque la fin du bloc)
:'t,'b : range inclus dans les marques

Effacement

dd : delete ligne
dw : delete word
d$ : delete jusqu'a la fin de la ligne
d^ : delete jusqu'au debut de la ligne
x : effacement du caractere sous le curseur
X : effacement du caractere a gauche du curseur

Copie / Colle

yy : Selectionne ligne
yw : Selectionne word
y$ : Selectionne jusqu'a la fin de la ligne
y^ : Selectionne jusqu'au debut de la ligne

Colle

p : colle le contenu de la copie ou de l'effacement en dessous du curseur
P : colle le contenu de la copie ou de l'effacement au dessus du curseur

Changement

cd : Change ligne
cw : Change word
c$ : Change jusqu'a la fin de la ligne
c^ : Changement jusqu'au debut de la ligne

Mode Visuel

v : Passe en mode visuel (par mot)
V : Passe en mode visuel (par ligne)
Ctrl+V : Passe en mode visuel (par bloc)
Selectionne les lignes a partir du curseur
Taper ensuite la touche selon l'action que vous souhaitez faire de la selection. Ex. : d pour effacer, y pour copier ...

Répétition

.(point) : Répète la derniere action

Affichage des caractères tab et retour chariot

:set list : Affiche ^I pour les tabs et $ pour les retour chariots

Coloration Syntaxique

:syntax enable : active la coloration syntaxique (si possible)
Les diverses colorations peuvent etre vues dans : /usr/share/vim/vim61/syntax
Si vi ne detecte pas le type automatiquement faire :
:set filetype=fortran : si le type est fortran

80 Caractères par ligne dans le HTML

Mettre ces deux lignes quelque part. Attention, garder sur deux lignes !!
<!-- vim: tw=80:
-->

Augmenter/Diminuer un nombre

Si on appuie sur CTRL+A, on incrémente le chiffre sous le curseur et CTRL-X décrémente le chiffre sous le curseur, ce en mode commande.

Réorganiser un paragraphe pour qu'il soit dans les 80 colonnes

:set tw=80
gqap

ATTENTION : Il s'agit de paragraphe, les listes numeriques ne sont pas considérées comme paragraphe !

Split Ecran

:vsp nomfich : Partage l'écran en deux verticalement, avec chargement de nomfich
:hsp nomfich : Partage l'écran en deux horizontalement, avec chargement de nomfich
[CTRL]+w : Change de split

Voir les différences entre deux fichiers en couleur

vimdiff fichier1 fichier2 : il s'agit de l'appel de vimdiff dans la console, pas dans vim...

Edition de plusieurs fichiers

:bn : aller sur le fichier (buffer) suivant
:bp : aller sur le fichier précédent

Développement

[Ctrl]+N : affiche les variables déjà existantes dans le code pour une fonction
ga : affiche les correspondances décimale, hexadécimale, octale du caractère sous le curseur (le code hexa peut être utilisé en HTML avec ª)

Paramétrages

Il peut être interressant de mettre en place une règle dans vim pour toutes les futures ouvertures de fichier. Il faut alors regarder le fichier ~/.vimrc et mettre dedans toutes les commandes vim qui seront utiles. Mon .vimrc est disponible sur cette page.
Suggestions : D. FOURNIER - Dernière mise à jour de la page : 07/10/2016 10:45