Éditeur de texte

Un éditeur de texte est un logiciel destiné à la création et l'édition de fichiers textes. Chaque système d'exploitation fournit un éditeur, tant son usage est courant, voire indispensable pour certaines tâches informatiques de base comme l'administration de système et le développement de logiciels.

Éditeur de texte et traitement de texte 

Un éditeur de texte se distingue d'un traitement de texte en ce qu'il est orienté "lignes de code" plutôt que "paragraphes" et que les fichiers textes ne contiennent en général pas de mise en forme (taille et genre de la police, etc). TextEdit, l'éditeur de NeXTSTEP, constitue une exception: ce logiciel a un format de fichiers élaboré, contenant les informations de structuration et — séparément ou non — de présentation.

L'éditeur utilise des fichiers de texte brut, présentés souvent avec une police à empattement et chasse fixes. Beaucoup d'éditeurs permettent d'agrandir et de rétrécir à volonté la police pendant une session, mais cette information n'est ensuite pas stockée dans le fichier lui-même.

Une police à chasse fixe permet par exemple d'aligner verticalement des sections correspondantes de texte, ce qui est utile pour rédiger des informations tabulées telles que du code source FORTRAN ou assembleur, etc.

Fonctionnalités 

Les fonctionnalités les plus élémentaires d'un éditeur sont :
 ouvrir un fichier (en proposant parfois une liste de fichiers récemment ouverts, ou déjà existants, voire en permettant de restreindre cette liste par un filtre) ;
 ajouter du texte dans une ligne, ou des lignes dans un fichier ;
 supprimer des caractères dans une ligne, ou des lignes d'un fichier ;
 rechercher/remplacer une chaîne texte (la recherche n'est pas toujours disponible) ; un éditeur comme EMACS réalise sa recherche au fur et à mesure de la frappe des caractères, comme les traitements de textes Wang à qui cela avait valu sa notoriété. D'autres systèmes attendent la fin de la frappe pour commencer la recherche, à la manière des mainframes ;
 sauvegarder le fichier, ou au contraire sortir en renonçant aux modifications (en cas de grosse erreur comme un effacement involontaire de texte).

Les éditeurs peuvent imposer des particularités ou offrir certaines fonctionnalités de configuration liées à certaines particularités des fichiers textes (taille des tabulations, codage du retour à la ligne (LF (#0A) pour la majorité des systèmes d'exploitation, CR (#0D) pour les anciens Macintosh ou encore  CR/LF (#0D0A) pour les produits Microsoft (MS-DOS et MS Windows)), ajout/suppression/reconnaissance de l'indicateur d'ordre des octets (IOO ou BOM), caractère de fin de fichier), en fonction de leurs caractéristiques d'interopérabilité et de leur ancienneté.

La plupart des éditeurs modernes comportent également ces autres fonctionnalités :
 Copier-coller ;
 Ouverture simultanée de plusieurs fichiers ;
 Gestion de zones tampons entre les fichiers ;
 Définition de macro-commandes ;
 Gestion des abréviations à la volée ;
 Fonctionnalités avancées de recherche et remplacement de texte ou motifs (notamment par l'usage des expressions rationnelles) ;
 Interaction avec des programmes externes sur les fichiers (compilateurs notamment) ;
 Indentation automatique pour certaines extensions de fichiers, comme le code source de divers langages de programmation ;
 Le complètement automatique (autocomplétion) pour certains langages, tels que le HTML ;
 Coloration syntaxique ;
 Gestion de différents encodages de caractères (8 bits, Unicode...).

Rien n'empêche d'utiliser un éditeur pour lire des fichiers. Certains éditeurs disposent d'un mode de lecture seule.

Interactif ou non 
Les éditeurs de texte se divisent en deux catégories :

 Les éditeurs plein écran (également appelés en anglais  ou encore  en chinois) ;
 Les éditeurs en mode caractère.

Un éditeur plein écran n'interagit avec l'unité centrale que lorsqu'est pressée une touche comme Entrée ou l'une des touches de fonction (Fx)  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. 

Un éditeur interactif dispose de presque toute la puissance de l'ordinateur pour lui seul, et peut donc accomplir des actions bien plus puissantes. Un exemple typique est la programmation des mots-clé du BASIC : Alt-P écrit PRINT, Alt-F écrit FOR, Alt-E écrit END, etc. Ces macros peuvent diviser par trois le temps de frappe d'un programme.

Éditeurs de texte couramment utilisés 
Les éditeurs de texte pour programmeurs offrent souvent la coloration syntaxique qui améliore la lisibilité du code source.

Sous Windows 

 EDLIN (MS-DOS, Windows) éditeur ligne par ligne
 EDIT (MS-DOS, Windows)
 Bloc-notes (Notepad) l'éditeur standard de Windows (compatible UTF-8 et UTF-16, suivant la version de Windows)
 WordPad éditeur RTF (compatible UTF-16)
 Autres éditeurs :
 ConTEXT
 Crimson Editor
 PSPad
 TextPad
 Notepad2  Bloc-notes alternatif basé sur Scintilla (SDI)
 Notepad++ Bloc-notes alternatif basé sur Scintilla (MDI)
 UltraEdit
 Sublime Text

Sous UNIX - GNU/Linux 

 Vi, Vim et Neovim (langage macro en propre)
 Emacs
 nano
 Ne (nice editor)
 Environnements de bureau :
 Kate ou KWrite sous l'environnement KDE
 gedit sous l'environnement GNOME
 Pluma (fork de gedit) sous l'environnement Mate
 Mousepad sous l'environnement Xfce et Leafpad sous LXDE
 Autres :
 Pico
 Joe's Own Editor
 Bluefish
 UltraEdit
 JuffEd

Sous Mac OS, Mac OS X et macOS 
 SimpleText, fourni en standard avec les versions 8.x et 9.x de Mac OS
 TextEdit, fourni en standard avec Mac OS X
 Terminal :
 Emacs, fourni en standard avec Mac OS X
 Vim, fourni en standard avec Mac OS X
 Autres :
 BBEdit
 Coda 2
 Fraise
 SubEthaEdit
 Sublime Text
 Smultron
 TextMate
 TextWrangler
 UltraEdit

Multi plates-formes 
Atom (MIT)
Bluefish (GPL)
 Emacs (GPL v3)
 gedit (GPL)
 Geany (GPL v2/v3)
 Jed (GPL)
 jEdit (GPL) éditeur de texte programmé en Java
 Komodo Edit (MPL) basé sur Scintilla (pour l'éditeur) et Firefox (pour le rendu HTML)
 NEdit (GPL)
 SciTE basé sur Scintilla
 Sublime Text (Licence propriétaire)
 UltraEdit (Licence propriétaire)
 Vim (logiciel libre)
 VS Code (Code source sous licence MIT)

Collaboratif en temps réel 
 EtherPad, HTML, en langage Scala ou JavaScript.
 Gobby, (GPL), GTK+.
 ShareLaTeX libre, orienté LaTeX
 Overleaf, orienté LaTeX

Hébergés en ligne

Libres et permettant l’auto-hébergement 
 EtherPad, HTML, en langage Scala ou JavaScript, pouvant être auto-hébergé
 ShareLaTeX libre, orienté LaTeX

Services en ligne propriétaires 
 Overleaf, orienté TeX/LaTeX

Éditeurs de texte inclus dans d'autres programmes 
 ChromEdit Plus, un éditeur pour les fichiers de configuration des logiciels Mozilla, disponible sous forme d'extension.

Voir aussi

Articles connexes 

 Éditeur XML
 Guerre d'éditeurs
  Comparaison d'éditeurs de texte, en anglais
 Éditeur hexadécimal

Lien externe 
  Forum Usenet en anglais

Références