El texto simple consiste exclusivamente en la representación de caracteres. Cada carácter se representa mediante 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 el espacio , el salto de línea y el salto de página . El texto simple no contiene ninguna otra información sobre el texto en sí, ni siquiera la convención de codificación de caracteres empleada. El texto simple se almacena en archivos de texto , aunque los archivos de texto no almacenan exclusivamente texto simple. Desde los primeros días de las computadoras, el texto simple se mostraba (antes por necesidad y ahora por convención) generalmente usando una fuente monoespaciada , de modo que la alineación horizontal y el formato en columnas a veces se hacían 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, grosor 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 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 adhieran 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 diseñados para abrir y guardar archivos de texto que contengan texto simple o cualquier cosa que pueda interpretarse como texto simple, incluido el marcado para texto enriquecido o el marcado para otra cosa (por ejemplo, SVG ).
Historia
Antes de que existieran los editores de texto, el texto de computadora se perforaba en tarjetas con máquinas perforadoras . [5] Luego, se insertaban cajas físicas de estas delgadas tarjetas de cartón en un lector de tarjetas . Los archivos de imagen de tarjetas de cinta magnética , tambor y disco creados a partir de estas barajas de tarjetas a menudo no tenían caracteres de separación de línea en absoluto y asumían registros de longitud fija [a] de 80 o 90 caracteres [6] . [7] Una alternativa a las tarjetas era la cinta perforada . Podía ser creada por algunos teleimpresores (como el Teletipo), que usaban 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 eran "editores de línea" orientados a terminales de tipo teleimpresora o máquina de escribir sin pantalla. Los comandos (a menudo una sola pulsación de tecla) efectuaban ediciones a un archivo en un punto de inserción imaginario llamado "cursor". Las ediciones se verificaban 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 podía moverse mediante comandos que especificaban el número de línea en el archivo, cadenas de texto (contexto) que buscar y, finalmente, expresiones regulares . Los editores de línea fueron mejoras importantes con respecto a la perforación de teclas. Algunos editores de línea podían usarse mediante perforación de teclas; los comandos de edición podían tomarse de una baraja de cartas y aplicarse a un archivo específico. Algunos editores de línea comunes admitían un modo de "verificación" en el que los comandos de cambio mostraban las líneas alteradas.
Cuando estuvieron disponibles las terminales de computadora con pantallas de video, aparecieron los editores de texto basados en pantalla (a veces llamados simplemente "editores de pantalla").se hizo 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 editor de pantalla completa temprano fue vi . Escrito en la década de 1970, todavía es un editor estándar [10] en los sistemas operativos Unix y Linux . También escrito en la década de 1970 fue el UCSD Pascal Screen Oriented Editor, que fue optimizado tanto para código fuente sangrado como para texto general. [11] Emacs , uno de los primeros proyectos de software libre y de código abierto , es otro editor temprano de pantalla completa o en tiempo real, que fue portado a muchos sistemas. [12] El Commodore PET de 1977 fue el primer ordenador de mercado masivo en presentar 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 tempranas de terminales de video. [13]
La estructura de datos principal de 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 la primera se podía almacenar en una única matriz larga y consecutiva de caracteres, el deseo de editores de texto que pudieran insertar texto, eliminar texto y deshacer/rehacer ediciones anteriores más rápidamente condujo al desarrollo de estructuras de datos de secuencia más complicadas. [14]
Un editor de texto típico utiliza un buffer de espacios , una lista enlazada de líneas (como en PaperClip ), una tabla de piezas o una cuerda como su estructura de datos de secuencia.
Tipos de editores de texto
Algunos editores de texto son pequeños y simples, 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 programadores, prefieren otros editores con más funciones. Bajo el clásico Mac OS de Apple Macintosh estaba el nativo TeachText reemplazado más tarde 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 características no están disponibles simultáneamente, sino que deben cambiarse mediante un comando del usuario, o mediante el programa que determina automáticamente el tipo de archivo .
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 esta lectura. El rendimiento de edición también suele verse afectado en editores no especializados, ya que el editor tarda segundos o incluso minutos en responder a las pulsaciones de teclas o los comandos de navegación. Los editores especializados tienen optimizaciones como almacenar solo la parte visible de los archivos grandes en la memoria, lo que mejora el rendimiento de edición.
Algunos editores son programables, lo que significa, por ejemplo, que se pueden personalizar para usos específicos. Con un editor programable es fácil automatizar tareas repetitivas o añadir nuevas funciones o incluso implementar una nueva aplicación dentro del marco del editor. Un motivo común para la personalización 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 ha llegado a depender. Los desarrolladores de software a menudo utilizan personalizaciones del editor adaptadas al lenguaje de programación o al entorno de desarrollo en el que están trabajando. La programabilidad de algunos editores de texto se limita a mejorar la funcionalidad de edición básica del programa, pero Emacs se puede ampliar mucho más allá de la edición de archivos de texto: para navegar por la web, leer correo electrónico, chatear en línea, administrar archivos o jugar juegos y a menudo se piensa en él como un entorno de ejecución Lisp con una interfaz de usuario de texto . Emacs incluso se puede programar para emular 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 programación. Estos "editores ortodoxos" contienen una "línea de comandos" 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 a 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 de 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 de inclusión , función o variable y luego saltar a su definición. Algunos también permiten una navegación fácil 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 un búfer temporal. Algunos editores implementan esta capacidad ellos mismos, pero a menudo se utiliza una utilidad auxiliar como ctags para ubicar las definiciones.
Características típicas
Buscar y reemplazar: los editores de texto ofrecen 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 usar expresiones regulares para buscar y editar texto o código. Las funciones adicionales pueden incluir la distinción entre mayúsculas y minúsculas opcional , un historial de términos de búsqueda para una recuperación rápida y el autocompletado , y la inclusión de 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 ofrecen una forma de deshacer y rehacer la última edición, o más. A menudo, especialmente con los editores de texto más antiguos, solo se recuerda un nivel del historial de edición y, al emitir sucesivamente el comando de deshacer, solo se "alternará" el último cambio. Los editores modernos o más complejos suelen proporcionar un historial de varios niveles, de modo que al emitir repetidamente el comando de deshacer, se revertirá el documento a ediciones sucesivamente más antiguas. Un comando de rehacer independiente hará que las ediciones avancen en un ciclo hacia los cambios más recientes. La cantidad de cambios que se recuerdan depende del editor y, a menudo, el usuario puede configurarlo.
Capacidad de saltar a un número de línea específico. [ cita requerida ]
Funciones avanzadas
Definición de macro o procedimiento: para definir nuevos comandos o características como combinaciones de comandos anteriores u otras macros, quizás 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, en entorno o perfil, que se ejecutan automáticamente al comienzo de una sesión de edición o al abrir un archivo nuevo.
Edición de múltiples archivos: la capacidad de editar múltiples archivos durante una sesión de edición, tal vez recordando el cursor de la línea actual de cada archivo, para insertar texto repetido en cada archivo, copiar o mover texto entre archivos, comparar archivos uno al lado del otro (tal vez con una interfaz de múltiples documentos en mosaico ), etc.
Editores multivista: la capacidad de mostrar múltiples vistas del mismo archivo, con seguimiento del cursor independiente, sincronizando los cambios entre las ventanas pero proporcionando las mismas facilidades que están disponibles para los 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, excluir todo lo que se encuentre entre BEGIN; y el END; correspondiente .
Edición basada en columnas; la capacidad de alterar o insertar datos en una columna particular, o de desplazar datos a columnas específicas.
Transformación de datos : lectura o fusión del contenido de otro archivo de texto en el archivo que se está editando actualmente. Algunos editores de texto ofrecen una forma de insertar el resultado de un comando enviado al shell del sistema operativo . Además, una función de cambio de mayúsculas y minúsculas podría traducirse a mayúsculas o minúsculas.
Filtrado : algunos editores de texto avanzados permiten que el editor envíe todo el archivo que se está editando o partes de él a otra utilidad y que vuelva a leer el resultado en el archivo en lugar de "filtrar" las líneas. Esto, por ejemplo, es útil para ordenar una serie de líneas alfabéticamente o numéricamente, hacer 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 declaración SELECT .
La navegación con el cursor puede variar entre los distintos editores de texto. Por ejemplo, si se pulsa Enddos veces, se puede llegar al final de una línea después de que con una pulsación se haya llegado al final de una fila de texto en pantalla. Los terminales orientados a bloques suelen tener teclas dedicadas al movimiento del cursor, al igual que los teclados de las computadoras personales.
Línea de comandos : algunos editores, por ejemplo, ISPF o XEDIT , tienen un campo dedicado en la pantalla para ingresar comandos en lugar de texto. Según el editor, el usuario puede tener que usar las teclas del cursor para cambiar entre los campos de comando y texto, o el editor puede interpretar, por ejemplo, teclas de función específicas, como solicitudes para cambiar.
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 desplazar un bloque 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 nombre comando de prefijo , 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 manera 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 funciones adicionales para facilitar la producción de código fuente. Suelen incluir funciones de resaltado de sintaxis y navegación por el código programables por el usuario, así como herramientas de codificación o macros de teclado similares a las de un editor HTML.
Editores plegables . Esta subclase incluye los denominados "editores ortodoxos", que son derivados de Xedit. Los editores que implementan el plegado sin funciones específicas de programación se denominan habitualmente editores de esquemas (véase más abajo).
Editores de esquemas . También llamados 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 esquema.
Los IDE (entornos de desarrollo integrados) están diseñados para gestionar y optimizar grandes proyectos de programación. Por lo general, solo se utilizan para programación, ya que contienen muchas funciones innecesarias para la edición de texto simple.
Los matemáticos, físicos y científicos 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 de 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 registran 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 que los editores puedan debatir.
Los editores programables generalmente se pueden mejorar para realizar alguna 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 What You See Is What You Get (Lo que ves es lo que obtienes)
Editor visual : software informático para editar archivos de texto mediante una interfaz de usuario textual o gráfica.
Notas
^ A finales de la década de 1960, ya existían editores 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 que se escribe en el área de entrada de números de secuencia asociada con una línea de texto específica y cuyo alcance está limitado a esa línea o, en el caso de un comando de bloque, asociado con el bloque de líneas entre los comandos de línea inicial y final. Un ejemplo de esto último sería escribir el comando ucc (bloque en mayúsculas) en las áreas de entrada de dos líneas; esto tiene el mismo efecto que escribir uc (mayúsculas) en el área de entrada de cada línea del rango.
Referencias
^ H. Albert Napier; Ollie N. Rivers; Stuart Wagner (2005). Cómo crear un negocio electrónico exitoso. Cengage Learning. pág. 330. ISBN1111796092.
^ Peter Norton; Scott H. Clark (2002). Peter Norton's New Inside the PC. Sams Publishing. pág. 54. ISBN0672322897.
^ L. Gopalakrishnan; G. Padmanabhan; Sudhat Shukla (2003). Su PC de casa: Cómo sacar el máximo partido a su ordenador personal. Tata McGraw-Hill Education . pág. 190. ISBN0070473544.
^ "Los mejores editores de texto gratuitos para Windows, Linux y Mac". 28 de abril de 2012. Todos los sistemas operativos vienen 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.
^ Louden, Kenneth C.; Lambert, Kenneth A. (26 de enero de 2011). Lenguajes de programación: principios y prácticas. Cengage Learning. pág. 5. ISBN978-1-133-38749-7.
^ "UNIVAC 90-COLUMN PUNCHED 'CARD-TO-MAGNETIC TAPE CONVERTER" (PDF) . Sistema de automatización de datos UNIVAC II (PDF) . Remington-Rand Univac Division of Sperry Rand Corporation. 1957. p. 246 . Consultado el 16 de diciembre de 2022 .,
^ Alavudeen, A.; Venkateshwaran, N. (18 de agosto de 2008). Fabricación integrada por computadora. PHI Learning Pvt. Ltd. pág. 180. ISBN978-81-203-3345-1.
^ Upton, Eben; Duntemann, Jeffrey; Roberts, Ralph; Mamtora, Tim; Everard, Ben (22 de agosto de 2016). Aprendiendo arquitectura informática con Raspberry Pi. John Wiley & Sons. págs. 232–234. ISBN978-1-119-18394-5.
^ "Modificar y cargar" (PDF) . Manual de referencia de SOS (PDF) . IBM . Noviembre de 1959 [Distribución n.º 1 publicada en 1959]. pág. 05.01.01 . Consultado el 15 de diciembre de 2022 .
^ "Especificaciones básicas de The Open Group, número 6, IEEE Std 1003.1, edición 2004". El IEEE y The 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 la UCSD". Métodos de investigación del comportamiento . 10 (4): 531–534. doi : 10.3758/BF03205341 .
^ "Presentación del entorno de edición Emacs". IBM . Archivado desde el original el 2014-06-06 . Consultado el 2014-06-06 .
^ "Multics Emacs: Historia, diseño e implementación". Algunos usuarios de Multics adquirieron estos terminales..., utilizándolos como "teletipos de cristal" 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 son 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.
^ "Gitorius". Archivado desde el original el 28 de mayo de 2015 . Consultado el 27 de mayo de 2015 .
^ "Buscando". Manual de usuario de Notepad++ . Consultado el 21 de diciembre de 2021 .
^
Philipp Acsany. "Elegir la mejor fuente de codificación para programar". 2023.
Enlaces externos
Los editores ortodoxos como una clase especial de editores avanzados analizan Xedit y sus clones con énfasis en las capacidades de plegado y la programabilidad.