Éditeur de texte
# É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 full-screen ou encore 全屏幕, quán píngmù 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) 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.

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

### 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.
