Skip to content

Comportement d’éditeurs de texte lors d’une modification concurrente

28 août 2017

Comment se comportent les éditeurs de texte lorsqu’un fichier est ouvert dans l’éditeur et qu’il a été modifié en même temps? C’est la question que vous ne vous êtes probablement jamais posée et à laquelle cet article répond.

TL;DR : plus ou moins bien mais l’écrasement sauvage est évité.

Dans un terminal

Le comportement est le même dans les trois éditeurs testés (nano, vim et emacs-nox). L’éditeur signale le problème lors de l’enregistrement du fichier. Il est possible de choisir alors entre l’état du fichier sur le disque ou celui qui vient d’être modifié.
Par contre, on ne s’en rend compte uniquement lorsque l’on désire enregistrer. Il est toujours possible d’annuler, d’enregistrer le fichier modifié sous un autre nom puis faire la comparaison entre les deux.

Nano

C-o

Vim

:w

Emacs-nox

C-x C-s

Emacs propose un choix supplémentaire : r annule les modifications en cours (pour « reverted »). C-h affiche une explication des différents choix et leurs implications.

En mode fenêtré

Le comportement est similaire dans les éditeurs testés (Gvim, Emacs, Gedit et Kate).
Ils détectent la modification automatiquement et propose de charger le fichier mis à jour. En cas de refus, une nouvelle alerte survient lors de l’enregistrement.

Gvim

Détection de la modification :

Alerte à l’enregistrement :

Emacs

Détection de la modification :

Alerte à l’enregistrement :

Gedit

Gedit est l’éditeur de base fourni avec GNOME.

Détection de la modification :

Alerte à l’enregistrement :

Kate

Kate est l’éditeur fourni avec KDE.

Kate propose une fonctionnalité que les autres n’ont pas : lorsque la modification du fichier est détectée, Kate propose de visualiser la différence entre les deux fichiers (bouton « View difference »). L’affichage obtenu est un diff entre la version sur le disque et la version en mémoire. On pourrait imaginer qu’il ouvrirait le résultat dans un nouvel onglet mais il semble qu’il utilise l’éditeur sélectionné par la variable d’environnement $EDITOR.

Détection de la modification :

Alerte à l’enregistrement :

Méthode et versions utilisées pour les tests (et captures d’écran)

Le comportement n’est pas identique entre les éditeurs lorsque la modification du fichier est faite par la commande
echo 'ajout' >> fichier.txt
Par exemple, la modification en parrallèle est bien détectée par Emacs mais pas par Gedit (la détection à l’enregistrement fonctionne correctement).

Pour avoir un comportement homogène, la méthode utilisée à chaque fois a été d’ouvrir le fichier nommé fichier.txt dans deux éditeurs, le modifier et l’enregistrer dans l’un des éditeurs et regarder comment réagit l’autre.

Nano :
2.8.6

Vim :
VIM – Vi IMproved 8.0 (2016 Sep 12, compiled Jul 22 2017 06:10:49)

Gvim :
8.0.707, version de GNOME 3.22.2

Emacs :
25.2.2, avec le thème deeper-blue

Gedit :
3.22.0, version de GNOME 3.22.2

Kate :
16.08.3, avec KDE 5.28.0 et Qt 5.7.1

L’ensemble des captures d’écran ont été faites sous GNOME.

Publicités

From → Autre

Laisser un commentaire

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :