Software informático utilizado para editar documentos de texto sin formato.
Editores como Leafpad , que se muestra aquí, a menudo se incluyen con los sistemas operativos como una aplicación auxiliar predeterminada para abrir archivos de texto.
El texto plano se compone exclusivamente de representación de caracteres. Cada carácter está representado por una secuencia de longitud fija de uno, dos o cuatro bytes, o como una secuencia de longitud variable de uno a cuatro bytes, de acuerdo con convenciones de codificación de caracteres específicas , como ASCII , ISO/IEC 2022 , Shift. JIS , UTF-8 o UTF-16 . Estas convenciones definen muchos caracteres imprimibles, pero también caracteres no imprimibles que controlan el flujo del texto, como espacio , salto de línea y salto de página . El texto sin formato no contiene ninguna otra información sobre el texto en sí, ni siquiera la convención de codificación de caracteres empleada. El texto sin formato se almacena en archivos de texto , aunque los archivos de texto no almacenan exclusivamente texto sin formato. Desde los primeros días de las computadoras, el texto sin formato (antes por necesidad y ahora por convención) generalmente se mostraba usando una fuente monoespaciada , de modo que la alineación horizontal y el formato de columnas a veces se realizaban usando caracteres de espacio en blanco.
El texto enriquecido, por otro lado, puede contener metadatos, datos de formato de caracteres (por ejemplo, tipo de letra, tamaño, peso y estilo ), datos de formato de párrafo (por ejemplo, sangría, alineación, distribución de letras y palabras, y espacio entre líneas u otros párrafos), y datos de especificación de la página (por ejemplo, tamaño, margen y dirección de lectura). El texto enriquecido puede ser muy complejo. El texto enriquecido se puede guardar en formato binario (por ejemplo, DOC ), archivos de texto que se adhieren a un lenguaje de marcado (por ejemplo, RTF o HTML ) o en una forma híbrida de ambos (por ejemplo, Office Open XML ).
Los editores de texto están destinados a abrir y guardar archivos de texto que contienen texto sin formato o cualquier cosa que pueda interpretarse como texto sin formato, incluido el marcado para texto enriquecido o el marcado para otra cosa (por ejemplo, SVG ).
Antes de que existieran los editores de texto, el texto de la computadora se perforaba en tarjetas con máquinas perforadoras . [5] Luego se insertaron cajas físicas de estas finas tarjetas de cartón en un lector de tarjetas . Los archivos de imágenes de cintas magnéticas , tambores y tarjetas de disco creados a partir de dichas barajas de tarjetas a menudo no tenían ningún carácter de separación de líneas y asumían registros de longitud fija [a] de 80 o 90 caracteres [6] . [7] Una alternativa a las tarjetas era la cinta perforada . Podría ser creado por algunos teleimpresores (como el Teletipo), que utilizaban caracteres especiales para indicar el final de los registros. [8] Algunos de los primeros sistemas operativos incluían editores de texto por lotes, ya sea integrados con procesadores de lenguaje o como programas de utilidad separados; Un ejemplo temprano fue la capacidad de editar archivos fuente SQUOZE para SCAT [9] en el sistema operativo SHARE .
Los primeros editores de texto interactivos fueron "editores de línea" orientados a terminales estilo teleimpresor o máquina de escribir sin pantalla. Los comandos (a menudo una sola pulsación de tecla) realizaban ediciones en un archivo en un punto de inserción imaginario llamado "cursor". Las ediciones se verificaron escribiendo un comando para imprimir una pequeña sección del archivo y periódicamente imprimiendo el archivo completo. En algunos editores de línea, el cursor se podía mover mediante comandos que especificaban el número de línea en el archivo, cadenas de texto (contexto) para buscar y, eventualmente, expresiones regulares . Los editores de línea supusieron mejoras importantes con respecto a la pulsación de teclas. Algunos editores de línea podrían usarse mediante pulsación de teclas; Los comandos de edición se pueden tomar de una baraja de cartas y aplicarlos a un archivo específico. Algunos editores de líneas comunes admitían un modo de "verificación" en el que los comandos de cambio mostraban las líneas alteradas.
Cuando estuvieron disponibles terminales de computadora con pantallas de video, los editores de texto basados en pantalla (a veces llamados simplemente "editores de pantalla")se volvió común. Uno de los primeros editores de pantalla completa fue O26 , que fue escrito para la consola del operador de las computadoras de la serie CDC 6000 en 1967. Otro de los primeros editores de pantalla completa fue vi . Escrito en la década de 1970, sigue siendo un editor estándar [10] en los sistemas operativos Unix y Linux . También se escribió en la década de 1970 el editor orientado a pantalla Pascal de UCSD , que se optimizó tanto para código fuente sangrado como para texto general. [11] Emacs , uno de los primeros proyectos de software gratuito y de código abierto , es otro de los primeros editores de pantalla completa o en tiempo real, que fue adaptado a muchos sistemas. [12] El Commodore PET de 1977 fue el primer ordenador del mercado masivo que contó con un editor de pantalla completa. La facilidad de uso y la velocidad de un editor de pantalla completa (en comparación con los editores basados en líneas) motivaron muchas compras iniciales de terminales de vídeo. [13]
La estructura de datos central en un editor de texto es la que administra la cadena (secuencia de caracteres) o lista de registros que representa el estado actual del archivo que se está editando. Si bien el primero podía almacenarse en una única serie larga y consecutiva de caracteres, el deseo de contar con editores de texto que pudieran insertar texto, eliminarlo y deshacer/rehacer ediciones anteriores más rápidamente llevó al desarrollo de estructuras de datos de secuencia más complicadas. [14]
Un editor de texto típico utiliza un buffer de espacio , una lista enlazada de líneas (como en PaperClip ), una tabla de piezas o una cuerda , como estructura de datos de secuencia.
Tipos de editores de texto
Emacs, un editor de texto popular entre los programadores, que se ejecuta en Microsoft Windowsgedit es un editor de texto incluido con GNOME
Algunos editores de texto son pequeños y sencillos, mientras que otros ofrecen funciones amplias y complejas. Por ejemplo, los sistemas operativos Unix y similares tienen el editor pico (o una variante), pero muchos también incluyen los editores vi y Emacs. Los sistemas Microsoft Windows vienen con el sencillo Bloc de notas , aunque muchas personas, especialmente los programadores, prefieren otros editores con más funciones. En el Mac OS clásico de Apple Macintosh existía el TeachText nativo, que luego fue reemplazado por SimpleText en 1994, que fue reemplazado en Mac OS X por TextEdit , que combina características de un editor de texto con las típicas de un procesador de textos, como reglas, márgenes y selección de fuentes múltiples. Estas funciones no están disponibles simultáneamente, pero deben cambiarse mediante un comando del usuario o mediante el programa que determina automáticamente el tipo de archivo .
La mayoría de los procesadores de texto pueden leer y escribir archivos en formato de texto sin formato, lo que les permite abrir archivos guardados desde editores de texto. Sin embargo, guardar estos archivos desde un procesador de texto requiere asegurarse de que el archivo esté escrito en formato de texto sin formato y que cualquier codificación de texto o configuración de BOM no oscurezca el archivo para su uso previsto. Los procesadores de texto que no son WYSIWYG , como WordStar , se utilizan más fácilmente como editores de texto y, de hecho, se utilizaron comúnmente como tales durante la década de 1980. El formato de archivo predeterminado de estos procesadores de texto a menudo se parece a un lenguaje de marcado, siendo el formato básico texto sin formato y formato visual logrado mediante caracteres de control no imprimibles o secuencias de escape . Los procesadores de texto posteriores, como Microsoft Word, almacenan sus archivos en formato binario y casi nunca se utilizan para editar archivos de texto sin formato. [15]
Algunos editores de texto pueden editar archivos inusualmente grandes , como archivos de registro o una base de datos completa colocada en un solo archivo. Los editores de texto más simples pueden simplemente leer archivos en la memoria principal de la computadora . Con archivos más grandes, este puede ser un proceso lento y es posible que no quepa todo el archivo. Algunos editores de texto no permiten que el usuario comience a editar hasta que se complete la lectura. El rendimiento de la edición también suele verse afectado en los editores no especializados, ya que el editor tarda segundos o incluso minutos en responder a las pulsaciones de teclas o comandos de navegación. Los editores especializados tienen optimizaciones como almacenar solo la parte visible de archivos grandes en la memoria, lo que mejora el rendimiento de la edición.
Algunos editores son programables, lo que significa, por ejemplo, que pueden personalizarse para usos específicos. Con un editor programable es fácil automatizar tareas repetitivas o agregar nuevas funcionalidades o incluso implementar una nueva aplicación dentro del marco del editor. Un motivo común para personalizar es hacer que un editor de texto utilice los comandos de otro editor de texto con el que el usuario esté más familiarizado, o duplicar la funcionalidad faltante de la que el usuario ya depende. Los desarrolladores de software suelen utilizar personalizaciones del editor adaptadas al lenguaje de programación o entorno de desarrollo en el que trabajan. La programabilidad de algunos editores de texto se limita a mejorar la funcionalidad de edición principal del programa, pero Emacs se puede extender mucho más allá de la edición de archivos de texto: para web. navegar, leer correos electrónicos, chatear en línea, administrar archivos o jugar juegos y, a menudo, se lo considera un entorno de ejecución Lisp con una interfaz de usuario de texto . Emacs puede incluso programarse para emular a Vi , su rival en las tradicionales guerras de editores de la cultura Unix . [16] [17]
Un grupo importante de editores programables utiliza REXX [b] como lenguaje de scripting. Estos "editores ortodoxos" contienen una "línea de comando" en la que se pueden escribir comandos y macros y líneas de texto en las que se pueden escribir comandos de línea [c] y macros. La mayoría de estos editores son derivados de ISPF/PDF EDIT o de XEDIT , el editor insignia de IBM para VM/SP hasta z/VM . Entre ellos se encuentran THE , KEDIT , X2, Uni-edit y SEDIT .
Un editor de texto escrito o personalizado para un uso específico puede determinar lo que el usuario está editando y ayudarlo, a menudo completando términos de programación y mostrando información sobre herramientas con documentación relevante. Muchos editores de texto para desarrolladores de software incluyen resaltado de sintaxis del código fuente y sangría automática para que los programas sean más fáciles de leer y escribir. Los editores de programación a menudo permiten al usuario seleccionar el nombre de un archivo , función o variable de inclusión y luego saltar a su definición. Algunos también permiten una fácil navegación de regreso a la sección original del código almacenando la ubicación inicial del cursor o mostrando la definición solicitada en una ventana emergente o en un búfer temporal. Algunos editores implementan esta capacidad ellos mismos, pero a menudo se utiliza una utilidad auxiliar como ctags para localizar las definiciones.
Características típicas
Buscar y reemplazar: los editores de texto brindan amplias funciones para buscar y reemplazar cadenas de texto, ya sea individualmente o en grupos de archivos en pestañas abiertas o en una carpeta seleccionada. Los editores avanzados pueden utilizar expresiones regulares para buscar y editar texto o código. Las características adicionales pueden incluir distinción entre mayúsculas y minúsculas opcional , un historial de términos de búsqueda para recuperarlos rápidamente y completarlos automáticamente , y enumerar varios resultados en un solo lugar. [18] [ se necesita una mejor fuente ]
Cortar, copiar y pegar : la mayoría de los editores de texto proporcionan métodos para duplicar y mover texto dentro del archivo o entre archivos.
Capacidad para manejar texto codificado en UTF-8 .
Deshacer y rehacer : al igual que con los procesadores de texto, los editores de texto brindan una forma de deshacer y rehacer la última edición, o más. A menudo, especialmente con los editores de texto más antiguos, sólo se recuerda un nivel del historial de edición y al emitir sucesivamente el comando deshacer sólo se "alternará" el último cambio. Los editores modernos o más complejos suelen proporcionar un historial de varios niveles, de modo que al ejecutar repetidamente el comando deshacer se revertirá el documento a ediciones sucesivamente más antiguas. Un comando de rehacer separado hará que las ediciones avancen hacia los cambios más recientes. La cantidad de cambios recordados depende del editor y, a menudo, el usuario puede configurarlo.
Posibilidad de saltar a un número de línea específico. [ cita necesaria ]
Funciones avanzadas
Definición de macro o procedimiento: para definir nuevos comandos o funciones como combinaciones de comandos anteriores u otras macros, tal vez con parámetros pasados o con anidamiento de macros.
Perfiles para conservar las opciones establecidas por el usuario entre sesiones de edición.
Macros de perfil con nombres especificados, por ejemplo, entorno, perfil, ejecutadas automáticamente al comienzo de una sesión de edición o al abrir un nuevo archivo.
Edición de varios archivos: la capacidad de editar varios archivos durante una sesión de edición, tal vez recordando el cursor de la línea actual de cada archivo, insertar texto repetido en cada archivo, copiar o mover texto entre archivos, comparar archivos uno al lado del otro. (quizás con una interfaz en mosaico de múltiples documentos ), etc.
Editores de vistas múltiples: la capacidad de mostrar múltiples vistas del mismo archivo, con seguimiento del cursor independiente, sincronizando los cambios entre las ventanas pero brindando las mismas funciones que están disponibles para archivos independientes.
Contraer/expandir, también llamado plegado : la capacidad de excluir temporalmente secciones del texto de la vista. Esto puede basarse en un rango de números de línea o en algún elemento sintáctico, por ejemplo, excluyendo todo lo que esté entre BEGIN; y el FINAL coincidente; .
Edición basada en columnas; la capacidad de alterar o insertar datos en una columna en particular, o de cambiar datos a columnas específicas.
Transformación de datos : leer o fusionar el contenido de otro archivo de texto en el archivo que se está editando actualmente. Algunos editores de texto proporcionan una forma de insertar la salida de un comando emitido en el shell del sistema operativo . Además, una función de cambio de mayúsculas y minúsculas podría traducirse a minúsculas o mayúsculas.
Filtrado : algunos editores de texto avanzados permiten al editor enviar todo o secciones del archivo que se está editando a otra utilidad y leer el resultado nuevamente en el archivo en lugar de las líneas que se "filtran". Esto, por ejemplo, es útil para ordenar una serie de líneas alfabética o numéricamente, realizar cálculos matemáticos, sangrar el código fuente , etc.
Editores orientados a la sintaxis: algunos editores admiten la sintaxis de uno o más idiomas y permiten operaciones en términos de unidad sintáctica, por ejemplo, insertar una nueva cláusula WHEN en una instrucción SELECT .
La navegación del cursor puede variar según los editores de texto. Por ejemplo, presionar Enddos veces puede navegar hasta el final de una línea ajustada después de presionar una vez para navegar hasta el final de una fila de texto en pantalla. Los terminales orientados a bloques suelen tener teclas dedicadas para mover el cursor, al igual que los teclados de las computadoras personales.
Línea de comando : algunos editores, por ejemplo, ISPF , XEDIT , tienen un campo dedicado en la pantalla para ingresar comandos en lugar de texto. Dependiendo del editor, es posible que el usuario tenga que usar las teclas de cursor para cambiar entre los campos de comando y de texto o el editor puede interpretar, por ejemplo, teclas de función específicas, como solicitudes de cambio.
Comandos de línea, también conocidos como comandos de prefijo o comandos de secuencia: algunos editores tratan un archivo como una matriz de líneas de texto con números de línea o números de secuencia asociados, y tienen un campo de número de línea distinto para cada campo de texto. Un comando de línea es una cadena que el usuario escribe en un campo de número de línea y que el editor reconoce como un comando que opera en esa línea o bloque de líneas específico, por ejemplo, LC para traducir una línea a minúsculas, ))3 para cambiar una bloquear tres columnas a la derecha. Algunos editores también admiten macros de línea, también conocidas como macros de prefijo o macros de secuencia. A pesar del comando de prefijo de nombre , algunos editores permiten que el campo de secuencia aparezca después del campo de texto.
Los editores de texto, especialmente los editores de código fuente , a menudo utilizan de forma predeterminada una fuente monoespaciada que distingue claramente entre caracteres similares ( homoglifos ), como los dos puntos y el punto y coma. [19]
Editores especializados
Algunos editores incluyen características especiales y funciones adicionales, por ejemplo,
Los editores de código fuente son editores de texto con funcionalidad adicional para facilitar la producción de código fuente. Estos suelen incluir funciones de navegación de código y resaltado de sintaxis programables por el usuario, así como herramientas de codificación o macros de teclado similares a un editor HTML.
Editores plegables . Esta subclase incluye los llamados "editores ortodoxos" que son derivados de Xedit. Los editores que implementan el plegado sin funciones específicas de programación generalmente se denominan delineadores (ver más abajo).
Delineadores . También se denominan editores basados en árboles porque combinan una vista de árbol de esquema jerárquico con un editor de texto. El plegado (ver arriba) puede considerarse una forma especializada de delinear.
Los IDE (entornos de desarrollo integrados) están diseñados para gestionar y optimizar grandes proyectos de programación. Por lo general, sólo se utilizan para programación, ya que contienen muchas funciones innecesarias para la edición de texto simple.
Los matemáticos, físicos e informáticos suelen producir artículos y libros utilizando TeX o LaTeX en archivos de texto sin formato. Estos documentos suelen producirse mediante un editor de texto estándar, pero algunas personas utilizan editores TeX especializados .
Los editores colaborativos permiten que varios usuarios trabajen en el mismo documento simultáneamente desde ubicaciones remotas a través de una red. Los cambios realizados por usuarios individuales se rastrean y se fusionan en el documento automáticamente para eliminar la posibilidad de ediciones conflictivas. Estos editores también suelen incluir un componente de chat en línea para el debate entre editores.
Los editores programables generalmente se pueden mejorar para realizar cualquiera o todas estas funciones, pero los editores más simples se centran en solo una o, como gPHPedit , están dirigidos a un solo lenguaje de programación.
Editor de estructura : cualquier editor de documentos que conozca la estructura subyacente del documento.
WYSIWYG : acrónimo de Lo que ves es lo que obtienes
Editor visual : software informático para editar archivos de texto utilizando una interfaz de usuario gráfica o textual.
Notas
^ A finales de la década de 1960, había editores disponibles que admitían registros de longitud variable.
^ Originalmente, las macros se escribían en ensamblador, CLIST ( TSO ), CMS EXEC ( VM ), EXEC2 (VM/SE) o PL/I , pero la mayoría de los usuarios abandonaron CLIST, EXEC y EXEC2 una vez que REXX estuvo disponible.
^ Un comando de línea es un comando escrito en el área de entrada del número de secuencia asociado con una línea de texto específica y cuyo alcance se limita a esa línea o, en el caso de un comando de bloque, asociado con el bloque de líneas entre el principio y el final. comandos de final de línea. Un ejemplo de esto último sería escribir el comando ucc (bloquear mayúsculas) en las áreas de entrada de dos líneas; esto tiene el mismo efecto que escribir uc (mayúscula) en el área de entrada de cada línea del rango.
Referencias
^ H. Albert Napier; Ollie N. Ríos; Estuardo Wagner (2005). Creación de un negocio electrónico ganador. Aprendizaje Cengage. pag. 330.ISBN 1111796092.
^ Peter Norton; Scott H. Clark (2002). Lo nuevo de Peter Norton dentro de la PC. Editorial Sams. pag. 54.ISBN0672322897.
^ L. Gopalakrishnan; G. Padmanabhan; Sudhat Shukla (2003). La PC de su hogar: cómo aprovechar al máximo su computadora personal. Educación de Tata McGraw-Hill . pag. 190.ISBN0070473544.
^ "Los mejores editores de texto gratuitos para Windows, Linux y Mac". 28 de abril de 2012. Cada sistema operativo viene con un editor de texto básico predeterminado, pero la mayoría de nosotros instalamos nuestros propios editores de texto mejorados para obtener más funciones.
^ Fuerte, Kenneth C.; Lambert, Kenneth A. (26 de enero de 2011). Lenguajes de programación: principios y prácticas. Aprendizaje Cengage. pag. 5.ISBN978-1-133-38749-7.
^ "CONVERTIDOR DE TARJETA A CINTA MAGNÉTICA PERFORADA DE 90 COLUMNAS UNIVAC" (PDF) . Sistema de automatización de datos UNIVAC II (PDF) . División Remington-Rand Univac de Sperry Rand Corporation. 1957. pág. 246 . Consultado el 16 de diciembre de 2022 .,
^ Alavudeen, A.; Venkateshwaran, N. (18 de agosto de 2008). Fabricación integrada por ordenador. PHI Aprendizaje Pvt. Limitado. Ltd. pág. 180.ISBN978-81-203-3345-1.
^ Upton, Eben; Duntemann, Jeffrey; Roberts, Ralph; Mamtora, Tim; Everard, Ben (22 de agosto de 2016). Aprender arquitectura de computadoras con Raspberry Pi. John Wiley e hijos. págs. 232-234. ISBN978-1-119-18394-5.
^ "Modificar y cargar" (PDF) . Manual de referencia SOS (PDF) . IBM . Noviembre de 1959 [Distribución nº 1 publicada en 1959]. pag. 05.01.01 . Consultado el 15 de diciembre de 2022 .
^ "Las especificaciones básicas de Open Group, edición 6, IEEE Std 1003.1, edición de 2004". El IEEE y el Open Group. 2004 . Consultado el 18 de enero de 2010 .
^ L. Bowles, Kenneth; Hollan, James (1 de julio de 1978). "Una introducción al sistema PASCAL de UCSD". Métodos de investigación del comportamiento . 10 (4): 531–534. doi : 10.3758/BF03205341 .
^ "Presentación del entorno de edición de Emacs". IBM . Archivado desde el original el 6 de junio de 2014 . Consultado el 6 de junio de 2014 .
^ "Multics Emacs: historia, diseño e implementación". Algunos usuarios de Multics compraron estos terminales..., usándolos como "teletipos de vidrio" o mediante "edición local".
^
Charles Crowley. "Estructuras de datos para secuencias de texto". Sección "Introducción".
^ "Editores de texto para programadores: herramientas de programación". Si abre un archivo .doc en un editor de texto, notará que la mayor parte del archivo tiene códigos de formato. Sin embargo, los editores de texto no agregan códigos de formato, lo que facilita la compilación del código.
^ "Guía de migración caótica de Vim a Emacs' Evil". juanjoalvarez.net . 19 de septiembre de 2014.
^ "Gitorio". Archivado desde el original el 28 de mayo de 2015 . Consultado el 27 de mayo de 2015 .
^ "Buscando". Manual de usuario del Bloc de notas++ . Consultado el 21 de diciembre de 2021 .
^
Philipp Acsany. "Elegir la mejor fuente de codificación para programar". 2023.
Enlaces externos
Editores ortodoxos como una clase especial de editores avanzados, analiza Xedit y sus clones con énfasis en las capacidades de plegado y la programabilidad.