Éditeur de texte - Text editor

Des éditeurs comme Leafpad , illustrés ici, sont souvent inclus avec les systèmes d'exploitation en tant qu'application d'aide par défaut pour l'ouverture de fichiers texte.

Un éditeur de texte est un type de programme informatique qui édite du texte brut . De tels programmes sont parfois appelés logiciels « notepad », suivant le nom de Microsoft Notepad . Les éditeurs de texte sont fournis avec les systèmes d'exploitation et les packages de développement logiciel, et peuvent être utilisés pour modifier des fichiers tels que des fichiers de configuration , des fichiers de documentation et le code source du langage de programmation .

Texte brut vs texte riche

Il existe des différences importantes entre le texte brut (créé et édité par des éditeurs de texte) et le texte enrichi (tel que celui créé par des logiciels de traitement de texte ou de PAO ).

Le texte brut se compose exclusivement de représentations de caractères. Chaque caractère est représenté par une séquence de longueur fixe d'un, deux ou quatre octets, ou par une séquence de longueur variable d'un à quatre octets, conformément à des conventions de codage de caractères spécifiques , telles que ASCII , ISO/IEC 2022 , UTF -8 , ou Unicode . Ces conventions définissent de nombreux caractères imprimables, mais également des caractères non imprimables qui contrôlent le flux du texte, tels que l' espace , le saut de ligne et le saut de page . Le texte brut ne contient aucune autre information sur le texte lui-même, pas même la convention de codage de caractères utilisée. Le texte brut est stocké dans des fichiers texte , bien que les fichiers texte ne stockent pas exclusivement du texte brut. Au début des ordinateurs, le texte brut était affiché à l'aide d'une police à espacement fixe , de sorte que l'alignement horizontal et la mise en forme en colonnes étaient parfois effectués à l'aide de caractères d'espacement. Pour des raisons de compatibilité, cette tradition n'a pas changé.

Le texte riche, d'autre part, peut contenir des métadonnées, des données de mise en forme des caractères (par exemple, la police, la taille, l'épaisseur et le style ), des données de mise en forme des paragraphes (par exemple, l'indentation, l'alignement, la distribution des lettres et des mots, et l'espace entre les lignes ou d'autres paragraphes), et données de spécification de page (par exemple, taille, marge et sens de lecture). Le texte riche peut être très complexe. Le texte enrichi peut être enregistré au format binaire (par exemple DOC ), des fichiers texte adhérant à un langage de balisage (par exemple RTF ou HTML ), ou sous une forme hybride des deux (par exemple Office Open XML ).

Les éditeurs de texte sont destinés à ouvrir et à enregistrer des fichiers texte contenant soit du texte brut, soit tout ce qui peut être interprété comme du texte brut, y compris le balisage pour le texte enrichi ou le balisage pour autre chose (par exemple SVG ).

Histoire

Une boîte de cartes perforées avec plusieurs jeux de programme.

Avant que les éditeurs de texte n'existent, le texte informatique était gravé dans des cartes à l' aide de machines à perforer . Des boîtes physiques de ces cartes en carton mince ont ensuite été insérées dans un lecteur de cartes. Les fichiers "image-cartes" de bande magnétique et de disque créés à partir de tels jeux de cartes n'avaient souvent aucun caractère de séparation de ligne et supposaient des enregistrements de 80 caractères de longueur fixe. Une alternative aux cartes était le ruban de papier perforé. Il pourrait être créé par certains téléimprimeurs (comme le télétype), qui utilisaient des caractères spéciaux pour indiquer la fin des enregistrements.

Les premiers éditeurs de texte étaient des "éditeurs de ligne" orientés vers des terminaux de type téléimprimeur ou machine à écrire sans affichage. Les commandes (souvent une seule frappe) effectuaient des modifications dans un fichier à un point d'insertion imaginaire appelé le "curseur". Les modifications ont été vérifiées en tapant une commande pour imprimer une petite partie du fichier, et périodiquement en imprimant l'intégralité du fichier. Dans certains éditeurs de ligne, le curseur pouvait être déplacé par des commandes qui spécifiaient le numéro de ligne dans le fichier, des chaînes de texte (contexte) à rechercher et éventuellement des expressions régulières . Les éditeurs de ligne ont été des améliorations majeures par rapport au keypunching. Certains éditeurs de ligne peuvent être utilisés par keypunch ; les commandes d'édition pourraient être extraites d'un jeu de cartes et appliquées à un fichier spécifié. Certains éditeurs de lignes courants prenaient en charge un mode « vérifier » dans lequel les commandes de modification affichaient les lignes modifiées.

Lorsque les terminaux informatiques avec écrans vidéo sont devenus disponibles, les éditeurs de texte sur écran (parfois appelés simplement « éditeurs d'écran ») sont devenus courants. L'un des premiers éditeurs plein écran était O26 , qui a été écrit pour la console opérateur des ordinateurs de la série CDC 6000 en 1967. Un autre éditeur plein écran des premiers était vi . Écrit dans les années 1970, c'est toujours un éditeur standard sur les systèmes d' exploitation Unix et Linux . L' éditeur UCSD Pascal Screen Oriented Editor a également été écrit dans les années 1970 , qui a été optimisé à la fois pour le code source indenté ainsi que pour le texte général. Emacs , l'un des premiers projets de logiciels libres et open source , est un autre éditeur en plein écran ou en temps réel, qui a été porté sur de nombreux systèmes. La facilité d'utilisation et la vitesse d'un éditeur plein écran (par rapport aux éditeurs en ligne) ont motivé de nombreux premiers achats de terminaux vidéo.

La structure de données de base dans un éditeur de texte est celle qui gère la chaîne (séquence de caractères) ou la liste d' enregistrements qui représente l'état actuel du fichier en cours d'édition. Alors que le premier pouvait être stocké dans un seul long tableau consécutif de caractères, le désir d'éditeurs de texte capables d'insérer plus rapidement du texte, de supprimer du texte et d'annuler/rétablir les modifications précédentes a conduit au développement de structures de données de séquence plus complexes. Un éditeur de texte typique utilise un tampon d'espacement , une liste chaînée de lignes (comme dans PaperClip ), une table de morceaux ou une corde , comme structure de données de séquence.

Types d'éditeurs de texte

Emacs, un éditeur de texte populaire parmi les programmeurs, fonctionnant sous Microsoft Windows
gedit est un éditeur de texte fourni avec GNOME

Certains éditeurs de texte sont petits et simples, tandis que d'autres offrent des fonctions larges et complexes. Par exemple, les systèmes d'exploitation Unix et de type Unix ont l' éditeur pico (ou une variante), mais beaucoup incluent également les éditeurs vi et Emacs. Les systèmes Microsoft Windows sont livrés avec le simple Bloc - notes , bien que de nombreuses personnes, en particulier les programmeurs, préfèrent d'autres éditeurs avec plus de fonctionnalités. Sous le Mac OS classique d' Apple Macintosh , il y avait le SimpleText natif , qui a été remplacé dans Mac OS X par TextEdit , qui combine les fonctionnalités d'un éditeur de texte avec celles typiques d'un traitement de texte telles que les règles, les marges et la sélection de polices multiples. Ces fonctionnalités ne sont pas disponibles simultanément, mais doivent être commutées par commande utilisateur ou via le programme déterminant automatiquement le type de fichier .

La plupart des traitements de texte peuvent lire et écrire des fichiers au format texte brut, ce qui leur permet d'ouvrir des fichiers enregistrés à partir d'éditeurs de texte. L'enregistrement de ces fichiers à partir d'un traitement de texte nécessite toutefois de s'assurer que le fichier est écrit au format texte brut et que tout encodage de texte ou paramètre de nomenclature n'obscurcira pas le fichier pour son utilisation prévue. Les traitements de texte non WYSIWYG , tels que WordStar , sont plus facilement mis en service en tant qu'éditeurs de texte et ont en fait été couramment utilisés en tant que tels au cours des années 1980. Le format de fichier par défaut de ces traitements de texte ressemble souvent à un langage de balisage, le format de base étant le texte brut et le formatage visuel obtenu à l'aide de caractères de contrôle non imprimables ou de séquences d'échappement . Les traitements de texte ultérieurs comme Microsoft Word stockent leurs fichiers dans un format binaire et ne sont presque jamais utilisés pour éditer des fichiers en texte brut.

Certains éditeurs de texte peuvent modifier des fichiers exceptionnellement volumineux tels que des fichiers journaux ou une base de données entière placée dans un seul fichier. Les éditeurs de texte plus simples peuvent simplement lire les fichiers dans la mémoire principale de l'ordinateur . Avec des fichiers plus volumineux, le processus peut être lent et le fichier entier peut ne pas tenir. Certains éditeurs de texte ne permettent pas à l'utilisateur de commencer à éditer tant que cette lecture n'est pas terminée. Les performances d'édition souffrent également souvent dans les éditeurs non spécialisés, l'éditeur prenant des secondes voire des minutes pour répondre aux frappes ou aux commandes de navigation. Les éditeurs spécialisés ont des optimisations telles que le stockage en mémoire uniquement de la partie visible des fichiers volumineux, améliorant ainsi les performances d'édition.

Certains éditeurs sont programmables, ce qui signifie, par exemple, qu'ils peuvent être personnalisés pour des utilisations spécifiques. Avec un éditeur programmable, il est facile d'automatiser des tâches répétitives ou d'ajouter de nouvelles fonctionnalités ou même de mettre en œuvre une nouvelle application dans le cadre de l'éditeur. Un motif courant de personnalisation est de faire en sorte qu'un éditeur de texte utilise les commandes d'un autre éditeur de texte avec lequel l'utilisateur est plus familier, ou de dupliquer une fonctionnalité manquante dont l'utilisateur a fini par dépendre. Les développeurs de logiciels utilisent souvent des personnalisations d'éditeur adaptées au langage de programmation ou à l'environnement de développement dans lequel ils travaillent. La programmabilité de certains éditeurs de texte se limite à améliorer la fonctionnalité d'édition de base du programme, mais Emacs peut être étendu bien au-delà de l'édition de fichiers texte - pour le Web navigation, lecture d'e-mails, chat en ligne, gestion de fichiers ou jeux et est souvent considéré comme un environnement d'exécution Lisp avec une interface utilisateur texte . Emacs peut même être programmé pour émuler Vi , son rival dans les guerres traditionnelles des éditeurs de la culture Unix .

Un groupe important d'éditeurs programmables utilise REXX comme langage de script. Ces "éditeurs orthodoxes" contiennent une "ligne de commande" dans laquelle les commandes et les macros peuvent être saisies et des lignes de texte dans lesquelles les commandes de ligne et les macros peuvent être saisies. La plupart de ces éditeurs sont des dérivés d' ISPF/PDF EDIT ou de XEDIT , l'éditeur phare d'IBM pour VM/SP à z/VM . Parmi eux se trouvent THE , KEDIT , X2, Uni-edit et SEDIT .

Un éditeur de texte écrit ou personnalisé pour une utilisation spécifique peut déterminer ce que l'utilisateur modifie et l'assister, souvent en complétant les termes de programmation et en affichant des info-bulles avec la documentation pertinente. De nombreux éditeurs de texte pour les développeurs de logiciels incluent la mise en évidence de la syntaxe du code source et l' indentation automatique pour faciliter la lecture et l'écriture des programmes. Les éditeurs de programmation permettent souvent à l'utilisateur de sélectionner le nom d'un fichier d'inclusion , d'une fonction ou d'une variable , puis de passer directement à sa définition. Certains permettent également de revenir facilement à la section d'origine du code en stockant l'emplacement initial du curseur ou en affichant la définition demandée dans une fenêtre contextuelle ou un tampon temporaire. Certains éditeurs implémentent eux-mêmes cette capacité, mais souvent un utilitaire auxiliaire comme ctags est utilisé pour localiser les définitions.

Caractéristiques typiques

  • Rechercher et remplacer - Les éditeurs de texte offrent des fonctionnalités étendues pour rechercher et remplacer du texte, soit sur des groupes de fichiers, soit de manière interactive. Les éditeurs avancés peuvent utiliser des expressions régulières pour rechercher et modifier du texte ou du code.
  • Couper, copier et coller - la plupart des éditeurs de texte fournissent des méthodes pour dupliquer et déplacer du texte dans le fichier ou entre les fichiers.
  • Capacité à gérer le texte codé en UTF-8 .
  • Formatage du texte - Les éditeurs de texte fournissent souvent mise en forme visuelle de base des fonctions comme une pellicule de ligne , indentation automatique , liste à puces mise en forme en utilisant ASCII caractères, commentaires formatage , la coloration syntaxique et ainsi de suite. Ceux-ci sont généralement uniquement destinés à l'affichage et n'insèrent pas de codes de formatage dans le fichier lui-même.
  • Annuler et refaire – Comme avec les traitements de texte, les éditeurs de texte offrent un moyen d'annuler et de refaire la dernière modification, ou plus. Souvent, en particulier avec les anciens éditeurs de texte, il n'y a qu'un seul niveau d'historique d'édition mémorisé et l'émission successive de la commande d'annulation ne fera que "basculer" la dernière modification. Les éditeurs modernes ou plus complexes fournissent généralement un historique à plusieurs niveaux, de sorte que l'exécution répétée de la commande d'annulation ramènera le document à des éditions successivement plus anciennes. Une commande de rétablissement distincte fera défiler les modifications « en avant » vers les modifications les plus récentes. Le nombre de modifications mémorisées dépend de l'éditeur et est souvent configurable par l'utilisateur.

Fonctionnalités avancées

  • Définition de macro ou de procédure : pour définir de nouvelles commandes ou fonctionnalités en tant que combinaisons de commandes précédentes ou d'autres macros, peut-être avec des paramètres passés ou avec l'imbrication de macros.
  • Profils pour conserver les options définies par l'utilisateur entre les sessions d'édition.
  • Macros de profil avec des noms spécifiés dans, par exemple, environnement, profil, exécutées automatiquement au début d'une session d'édition ou lors de l'ouverture d'un nouveau fichier.
  • Édition multi-fichiers : la possibilité d'éditer plusieurs fichiers au cours d'une session d'édition, peut-être en se souvenant du curseur de la ligne actuelle de chaque fichier, pour insérer du texte répété dans chaque fichier, copier ou déplacer du texte parmi les fichiers, comparer les fichiers côte à côte (peut-être avec une interface multi-documents en mosaïque ), etc.
  • Éditeurs multi-vues : la possibilité d'afficher plusieurs vues du même fichier, avec un suivi du curseur indépendant, synchronisant les modifications entre les fenêtres mais offrant les mêmes fonctionnalités que celles disponibles pour les fichiers indépendants.
  • Réduire/développer, également appelé pliage : La possibilité d'exclure temporairement des sections du texte de la vue. Cela peut être basé sur une plage de numéros de ligne ou sur un élément syntaxique, par exemple, exclure tout entre un BEGIN ; et l' END correspondant ; .
  • Édition basée sur des colonnes ; la possibilité de modifier ou d'insérer des données dans une colonne particulière, ou de déplacer des données vers des colonnes spécifiques.
  • Transformation de données - Lecture ou fusion du contenu d'un autre fichier texte dans le fichier en cours d'édition. Certains éditeurs de texte permettent d'insérer la sortie d'une commande envoyée au shell du système d'exploitation . En outre, une fonction de changement de casse pourrait se traduire par des minuscules ou des majuscules.
  • Filtrage - Certains éditeurs de texte avancés permettent à l'éditeur d'envoyer tout ou partie du fichier en cours d'édition à un autre utilitaire et de lire le résultat dans le fichier à la place des lignes "filtrées". Ceci, par exemple, est utile pour trier une série de lignes par ordre alphabétique ou numérique, effectuer des calculs mathématiques, indenter le code source , etc.
  • Mise en évidence de la syntaxe - met en évidence de manière contextuelle le code source , les langages de balisage , les fichiers de configuration et tout autre texte qui apparaît dans un format organisé ou prévisible. Les éditeurs permettent généralement aux utilisateurs de personnaliser les couleurs ou les styles utilisés pour chaque élément du langage. Certains éditeurs de texte permettent également aux utilisateurs d'installer et d'utiliser des thèmes pour modifier l' apparence de l'ensemble de l'interface utilisateur de l'éditeur .
  • Extensibilité - un éditeur de texte destiné à être utilisé par les programmeurs doit fournir un mécanisme de plug - in ou être scriptable , afin qu'un programmeur puisse personnaliser l'éditeur avec les fonctionnalités nécessaires pour gérer des projets logiciels individuels, personnaliser des fonctionnalités ou des raccourcis clavier pour des langages de programmation spécifiques ou des systèmes de contrôle de version , ou se conformer à des styles de codage spécifiques .

Éditeurs spécialisés

Certains éditeurs incluent des fonctionnalités spéciales et des fonctions supplémentaires, par exemple,

  • Les éditeurs de code source sont des éditeurs de texte avec des fonctionnalités supplémentaires pour faciliter la production de code source. Ceux-ci comportent souvent des fonctions de coloration syntaxique et de navigation dans le code programmables par l'utilisateur, ainsi que des outils de codage ou des macros de clavier similaires à un éditeur HTML (voir ci-dessous).
  • Éditeurs pliants . Cette sous-classe comprend les "éditeurs orthodoxes" qui sont des dérivés de Xedit. Les éditeurs qui implémentent le pliage sans fonctionnalités spécifiques à la programmation sont généralement appelés contours (voir ci-dessous).
  • Les IDE (environnements de développement intégrés) sont conçus pour gérer et rationaliser les grands projets de programmation. Ils ne sont généralement utilisés que pour la programmation car ils contiennent de nombreuses fonctionnalités inutiles pour une simple édition de texte.
  • Les auteurs du World Wide Web se voient proposer une variété d' éditeurs HTML dédiés à la création de pages Web . Ceux-ci incluent : Dreamweaver , KompoZer et E Text Editor . Beaucoup offrent la possibilité de visualiser un travail en cours sur un moteur de rendu HTML intégré ou un navigateur Web standard .
  • La plupart des développements Web sont effectués dans un langage de programmation dynamique tel que Ruby ou PHP à l' aide d'un éditeur de code source ou d'un IDE. Le HTML fourni par tous les sites Web statiques, sauf les plus simples, est stocké sous forme de fichiers modèles individuels qui sont assemblés par le logiciel contrôlant le site et ne composent pas un document HTML complet.
  • Les mathématiciens, les physiciens et les informaticiens produisent souvent des articles et des livres en utilisant TeX ou LaTeX dans des fichiers en texte brut. De tels documents sont souvent produits par un éditeur de texte standard, mais certaines personnes utilisent des éditeurs TeX spécialisés .
  • Contours . Également appelés éditeurs arborescents, car ils combinent une arborescence hiérarchique avec un éditeur de texte. Le pliage (voir ci-dessus) peut être considéré comme une forme spécialisée de contour.
  • Les éditeurs collaboratifs permettent à plusieurs utilisateurs de travailler simultanément sur le même document à partir d'emplacements distants sur un réseau. Les modifications apportées par les utilisateurs individuels sont suivies et fusionnées automatiquement dans le document pour éliminer la possibilité de modifications conflictuelles. Ces éditeurs incluent également généralement un composant de discussion en ligne pour la discussion entre les éditeurs.
  • Les éditeurs sans distraction offrent une interface minimaliste dans le but d'isoler l'écrivain du reste des applications et du système d'exploitation, lui permettant ainsi de se concentrer sur l'écriture sans être distrait par les éléments de l'interface comme une barre d'outils ou une zone de notification .

Les éditeurs programmables peuvent généralement être améliorés pour exécuter tout ou partie de ces fonctions, mais les éditeurs plus simples se concentrent sur une seule ou, comme gPHPedit , ciblent un seul langage de programmation.

Voir également

Remarques

Les références

Liens externes