Les commandes fondamentales de Vim

Vim (ou vi) est un éditeur de texte en console. Il à la réputation d'être le plus puissant mais sa prise en main n'est pas des plus intuitive, du moins au début. Je ne vais pas vous mentir, je ne l'utilise que très rarement et je lui préfère souvent Nano pour sa simplicité.
Néanmoins toute personne qui s'intéresse sérieusement à Linux, à la ligne de commande et même à la programmation en général devrait s'y pencher.

Les quelques explications que vous trouverez ci-dessous apporteront peu de choses à ce qui est expliqué dans le tutoriel intégré à Vim (vimtutor) que je vous invite à suivre par vous même.

Dans un terminal tapez:

$ vimtutor 

et suivez le guide!

Les différents modes de Vim

Voir plus bas : Commande d'ouverture et mode d'insertion

Les déplacements ou opérateurs de mouvement

toutes ces actions se font en mode interactif

Simple déplacement: touches h,j,k,l (ou touches fléchés)

        ^
        k
< h           l >
        j
        v

Enregistrer/quitter

Enregistrer

:w

Quitter

:q

Enregistrer et quitter

:wq

ou

:x

Quitter sans enregistrer

:q!

Commande d'ouverture et mode d'insertion

Mode insertion avant le curseur

i

Mode insertion après le curseur

a

Mode insertion en fin de ligne

Quel que soit la position du curseur, la commande A se comportera comme "i" mais se placera à la fin de la ligne.

A

Créer une nouvelle ligne en dessous de celle ou se trouve le curseur et passer en mode insertion

o

Créer une nouvelle ligne au dessus de celle ou se trouve le curseur et passer en mode insertion

O

Couper/supprimer

Supprimer le caractère sous le curseur en mode interactif

x

Opérateur effacement "d"

Supprimer une suite de caractères depuis le curseur jusqu'au prochain espace inclus

dw

Supprimer une suite de caractères depuis le curseur jusqu'au dernier caractère avant le prochain espace

de

Supprimer le reste d'une ligne à partir du curseur

d$

Supprimer le début d'une ligne jusqu'au curseur

d0

Supprimer toute une ligne quelque soit l'emplacement du curseur

dd

Couper avec un quantificateur de mouvement

Un quantificateur de mouvement est un nombre que l'on ajoute avant une commande ou un opérateur pour indiquer à Vim le nombre de fois qu'il devra répéter l'opération

Supprimer 4 lignes depuis celle ou se trouve le curseur

4dd

Supprimer deux lignes en commençant depuis le curseur

2d$

Opérateur de remplacement "r" et "R"

Remplacer un caractère par un autre, placer le curseur sur le caractère à remplacer (dans l'exemple on souhaite remplacer un caractère par un s

rs

Le fait d'appuyer sur r minuscule bascule Vim en mode remplacement jusqu'à ce que l'on presse une touche (dans l'exemple "s") et revient en mode interactif.

Remplacer un caractère et effacer le suivant. Chaque nouveau caractère tapé ne décale pas la ligne mais supprime au fur et à mesure les caractères suivants.

R

Contrairement à "r", "R" entre dans le mode de remplacement et n'en sortira que quand on pressera la touche [ESCAPE]

Opérateur de d'effacement "c"

"c" s'utilise comme "d" mais il entre en mode de remplacement et n'en sortira que quand on pressera la touche [ESCAPE]
"c" s'utilise avec un opérateur de mouvement.

Effacer un mot et entrer dans le mode insertion, taper du texte ...

ce<taper du texte>[ESCAPE]

Remplacer la fin d'une ligne: (placer le curseur à l'endroit ou l'effacement doit commencer)

c$<taper du texte>[ESCAPE]

Remplacer 3 mots

c3w<taper du texte>[ESCAPE]

Copier

Opérateur de copie "y"

Copier une ligne ou que soit le curseur sur celle-ci

yy

Copier une suite de caractères du curseur jusqu'au prochain espace

yw

Copier du curseur jusqu'à le fin de la ligne

y$

Copier du curseur jusqu'au début de ligne

y0

Opérateur de copie "y" et quantificateur de mouvement

Copier 4 lignes

4yy

Copier 3 mots depuis le curseur

3yw

Sélectionner et copier en mode visuel

Positionner le curseur au début du texte à copier et entrer en mode visuel "v" (voir : mode visuel)

v

Déplacer le curseur jusqu'à la fin du texte à copier (h,j,k,l) puis copier grâce à "y"

y

Coller

Coller ce qui viens d'être coupé ou copier

p

Coller 4 fois ce qui viens d'être copier

4p

On peut aussi appuyer 4 fois sur la touche p

pppp

Annuler

Annuler la dernière commande

u

Il suffit de taper plusieurs fois "u" pour annuler une à une les dernières commandes

Annuler toutes les commandes faites sur une même ligne

U

Annuler l'annulation

CTRL R

Rechercher

Recherche classique

Rechercher un texte

/<texte à chercher>

Rechercher à nouveau ce même texte (de haut en bas)

n

Rechercher à nouveau ce même texte (de bas en haut)

N

Pour rechercher du texte directement dans la direction opposée (de bas en haut), utilisez ? au lieu de /

Recherche de couple

Rechercher des couples de ( ), [ ] ou { }

Placer le curseur sur une parenthèse (ouvrante ou fermante peu importe) puis taper % pour positionner le curseur sur sa sœur

%

Chaque fois que l'on tapera % le curseur se placera alternativement sur la parenthèse ouvrante ou fermante.

Rechercher remplacer (commande de substitution)

Remplacer la première occurrence par une autre dans la ligne ou se trouve le curseur. Ou que soit le curseur dans la ligne, seule la première occurrence de cette ligne sera modifiée

:s/ancien/nouveau

Remplacer toutes les occurrences de la ligne ou se trouve le curseur

:s/ancien/nouveau/g

Remplacer toutes les occurrences d'une suite de lignes, dans l'exemple les lignes 101,102,103 et 104 sont concernées

:101,104s/ancien/nouveau/g

Remplacer toutes les occurrences dans tout le fichier

:%s/ancien/nouveau/g

Remplacer toutes les occurrences du fichier avec demande de confirmation ou d'infirmation

:%s/ancien/nouveau/gc

v la sélection visuelle

L'appui de la touche [v] démarre la sélection Visuelle. Vous pouvez déplacer le curseur pour agrandir ou rétrécir la sélection. Puis vous pouvez utiliser un opérateur pour faire quelque chose sur le texte. Par exemple, "d" efface le texte.

Enregistrer une sélection dans un fichier:

Placez le curseur là ou vous souhaitez commencer à sélectionner
Taper "v" puis déplacer le curseur (h,j,k,l) jusqu'à la fin de la sélection.
Taper ":" pour finir la sélection. :'<,'> va apparaître.
Taper "w mon_fichier [ENTRER]"

Un fichier "mon_fichier" est créé dans le répertoire courant et contient le texte de la sélection.

Récupération

Récupération et fusion de fichier

Incruster le contenu d'un fichier dans le fichier courant

:r emplacement/autre/fichier

Récupération et fusion de sortie de commande

Incruster la sortie de la commande ls

:r !ls

Split le découpage de l'écran (viewport)

Scinder en 2 l'écran horizontalement pour le même fichier courant

:sp

Scinder en 2 l'écran verticalement pour le même fichier courant

:vsp

Spliter l'écran pour un autre fichier

:sp autre_fichier

Les raccourcis pour se déplacer d'un "viewport" à un autre

Naviguer de viewport en viewport

CTRL-W

Aller vers un viewport précis

CTRL-W [h,j,k,l]

Agrandir le viewport actuel

CTRL-W +

Réduire le viewport actuel

CTRL-W -

Egaliser la taille des viewport

CTRL-W =

Échanger la position des viewport

CTRL-W r

Idem avec R mais en sens inverse

Fermer le viewport actuel

CTRL-W q

Shell

Lancer une commande shell

:![commande]

Faire un ls depuis Vim

:!ls

Les options

Syntaxe des options pour la session courante

Activer une option

:set [option]

Désactiver une option

:set [nooption]

Activer une option avec valeur

:set [option=valeur]

Connaître l'état d'une option

set [option]?

Quelques exemples

Activer l'option "ignorer la casse"

:set ic

Lors d'une recherche, mettre les occurrences trouvées en surbrillance

:set hls is

ic => "ignorecase" pour ignorer la casse lors des recherches.
is => "incsearch" pour montrer les appariements partiels.
hls => "hlsearch" pour mettre en surbrillance les appariements.

Retirer la surbrillance des résultats

:nohlsearch

Ignorer la casse seulement pour la recherche courante

/<mot_a_chercher>\c

Obtenir de l'aide

Ouvrir le fichier d'aide

:help 

ou touche [F1]

Aller de page en page

CTRL-W

Fermer la fenêtre d'aide

:q

Argumenter help

:help w
:help c_CTRL-D
:help c_<T
:help insert-index
:help user-manual

Le fichier de configuration

Fichier de configuration global de Vim

# /etc/vim/vimrc

Fichier de configuration utilisateur de Vim

$ ~/.vimrc

si ce fichier n'existe pas il est possible de copier celui du répertoire de configuration global

Activer la coloration syntaxique

Dans le fichier .vimrc dé-commentez la ligne

syntax on

Si votre arrière plan est plutôt sombre commentez la ligne

set background=dark
^