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é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!!!
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
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
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.