Outils pour utilisateurs

Outils du site


software:applications:vim:buffers

Buffers

Les buffers (ou tampons) sont des espaces mémoires distincts utilisés par vim pour contenir le texte en cours d’édition. Les fenêtres, les onglets sont des vues associées à un buffer. Un même buffer peut être présenté par différents fenêtres/onglets.

L'utilisateur dispose de:

  • 26 tampons (buffers) identifiés par les lettres de l'alphabet
  • 9 tampons spéciaux identifiés par les chiffres 1-9 utilisés par les commandes édition/suppression.

Si on exécute vim en fournissant plusieurs noms de fichiers en argument, un tampon est créé pour chaque fichier à éditer.

vim f1.txt f2.txt f3.txt

Lister les buffers

En mode commande, :ls permet de lister les tampons existants et les informations associées:

:ls
  1 %a   "vehicule.py"                  ligne 24

Dans cet exemple, un seul buffer existe (index 1), il est rempli par le contenu du fichier vehicule.py, la position du curseur est indiquée ( ligne 24).

  • Les caractères '%a' indiquent que le buffer est affiché par la fenêtre courante ;
  • Le caractère '#' désigne le buffer précédemment affiché ;
  • Un caractère '+' indiquerai que le buffer a été modifié et pas encore sauvegardé ;
  • Un caractère '-' indiquerai que le buffer n'est plus modifiable (par exemple après execution de :set nomodifiable
Ne pas confondre avec :!ls qui exécute la commande ls dans le shell et affiche le résultat sous vim.

Créer un buffer

Plusieurs commandes vont aboutir à la création d'un nouveau buffer:

  • édition d'un fichier existant ou nouveau fichier
:e test.csv

La commande suivante permet d’éditer un fichier nommé test.csv. Ce fichier n'existant pas, un buffer vide est créé et affiché par la fenêtre courante:

:ls

Changer de buffer

Pour que la fenêtre active affiche un autre buffer, on peut utiliser les commandes:

  • :bn ou :bnext(buffer next) pour afficher le buffer suivant
  • :bp ou :bprev(buffer previous) pour le buffer précédent.
  • :b x ou x est le numéro ou une chaîne de caractères identifiant le buffer à afficher.
:vertical

Etat d'un buffer

l'aide :help :ls détaille exhaustivement les caractères décrivant l'état des buffers:

% Le buffer affiché par la fenêtre courante.
# Le buffer récupéré par la commande :e #

Supprimer un buffer

La commande :bd ou :bdelete permet de supprimer un buffer.

Création de buffers

En plus des buffers par défaut utiliser par les commandes de copie, suppression par exemple, l'utilisateur peut créer des buffers nommés, par exemple pour copier le contenu de la ligne sous le curseur dans un buffer nomx on tapera en mode normal:

"xyy

Ici on supprime les 3 lignes sous le curseur et on les place dans le buffer t:

"t3dd

On peut écrire le contenu d'un buffer dans un fichier

Références

software/applications/vim/buffers.txt · Dernière modification : 2023/10/14 17:35 de yoann