# Éditeur de texte plein écran

Un éditeur de texte plein écran (anglais : full-screen) ou éditeur visuel permet de modifier un texte sur ordinateur en utilisant l'écran dans ses deux dimensions, par opposition aux éditeurs de texte pour terminaux de type machine à écrire qui fonctionnaient en mode ligne. Il s'agit dans les deux cas d'éditeurs en mode texte, n'utilisant pas l'interface graphique (ou alors fonctionnant dans une session texte sur un terminal graphique).
On oppose habituellement les éditeurs plein écran aux éditeurs ligne par ligne, tels que ed ou EDLIN.
Ce terme est parfois utilisé pour désigner un éditeur de texte en mode texte, par opposition aux applications graphiques. Tous les éditeurs disposant d'un environnement graphique sont plein écran, mais tous les éditeurs en mode caractère ne le sont pas forcément.
La traduction anglaise est full-screen editor ou visual editor. On trouve parfois dans la littérature francophone la traduction littérale « éditeur visuel ».

## Les deux types d'éditeurs plein écran

Les éditeurs se rattachent historiquement à deux types : à écran dit "intelligent" ou à écran passif, chacun possédant ses avantages et ses inconvénients.

### Éditeurs à écran intelligent

Un tel éditeur n'interagit avec l'unité centrale que lorsqu'est pressée une touche comme Enter ou l'une des touches de fonction (Fx) ou d'action (PAn) du terminal. Le reste du temps, ce sont les capacités d'insertion native fournies par l'unité de contrôle du terminal qui permettent l'ajout, la suppression ou l'insertion de caractères dans toutes les lignes affichées sur l'écran. L'unité de contrôle doit honorer les requêtes suivantes :
* mode insertion (la frappe d'un caractère décale les suivants dans le champ) ou remplacement (tout caractère frappé efface celui qui se trouvait précédemment sur l'écran,
* suppression d'un caractère, ou de tous les caractères du curseur jusqu'à la fin du champ.
* déplacement du curseur (haut, bas, gauche, droite, champ suivant, ligne suivante, premiète position du premier champ ("Home")
Ces actions étaient accomplies par des touches débanalisées, qui furent reportées ensuite pour l'essentiel sur les claviers de l'IBM PC.
Une ligne d'écran se compose en général de deux champs : la zone de ligne et la zone de numéro de ligne. L'unité de contrôle est donc beaucoup sollicitée pour des actions simples et l'unité centrale très peu pour des actions plus complexes. Ce système permettait de gérer simultanément dès 1977 près de 300 écrans 24x80 de type IBM 3270 sur une machine de 4 Mo !
Le premier éditeur connu de ce type fut EDGAR (EDiting Graphically And Recursively) sur écran 3270. Il fut rapidement suivi par Xedit, écrit par Xavier de Lamberterie et utilisé dans le monde entier.
* Avantages : temps de réponse indépendant de la charge machine ou réseau pour les opérations sur caractère (ni l'un ni l'autre n'étant sollicités), grand nombre de terminaux supportés sur une machine n'y consacrant que 2 000 à 4 000 octets par écran (lorsqu'on pressait une touche ENTER, PF ou PA, seuls les champs modifiés étaient transmis à l'unité centrale). Une consommation typique était de 0,02 MIPS par poste.
* Inconvénient : la répartition prédéfinie des tâches entre unité de contrôle et unité centrale ne permettait pas de définir une action programmée sur un caractère donné; en particulier, il n'était pas possible de définir des macros sur caractère.

### Éditeurs à écran passif

Il s'agit en un tel cas de terminaux ASCII très bon marché (même un simple Minitel 1B pouvait suffire) qui interagissent directement avec l'unité centrale. Cette solution est parfaitement adaptée aux ordinateurs personnels et l'était également aux mini-ordinateurs possédant un faible nombre de terminaux. La consommation était plus importante (typiquement 0,2 MIPS/poste), mais la mise en œuvre à la fois plus facile et moins coûteuse)
Des éditeurs typiques de cette famille sont vi et vim.
* Avantages : programmation possible par l'utilisateurs de macros sur quelque caractère du clavier que ce soit (:map); programmation système bien plus simple; pas de matériel spécialisé.
* Inconvenients : décalage parfois gênant entre la frappe d'un caractère et son écho en fonction de la charge du système et/ou du réseau.

## Éditeurs de synthèse

* Des éditeurs ont essayé de s'inspirer des avantages de chaque système. C'est le cas de The Hessling Editor sous Linux comme cela le fut de Gedit/Kedit sur les PC sous DOS.
* Dans la pratique, les guerres d'éditeurs entre les partisans de chaque famille (et parfois à l'intérieur de chacune) se sont largement calmées, l'arrivée des éditeurs en interface graphique les renvoyant dos à dos.