# Editor de texto

Editor de texto es un programa informático que permite armar y modificar archivos digitales compuestos únicamente por textos sin formato, conocidos comúnmente como archivos de texto o “texto plano”. El programa lee el archivo e interpreta los bytes leídos según el código de caracteres que usa el editor. Es comúnmente de 7- u 8-bits en ASCII o UTF-8, rara vez EBCDIC.
Por ejemplo, un editor ASCII de 8 bits que lee el número binario 0110 0001 (decimal 97 o hexadecimal 61) en el archivo lo representará en la pantalla por la figura a, que el usuario reconoce como la letra "a" y ofrecerá al usuario las funciones necesarias para cambiar el número binario en el archivo.
Los editores de texto son incluidos en el sistema operativo o en algún paquete de software instalado, y se usan cuando se deben crear o modificar archivos de texto como archivos de configuración, lenguaje de programación interpretado (scripts) o el código fuente de algún programa.
El archivo creado por un editor de texto incluye por convención en DOS y Microsoft Windows la extensión ".txt", aunque pueda ser cambiada a cualquier otra con posterioridad. Tanto Unix como Linux dan al usuario total libertad en la denominación de sus archivos.
Al trasladar archivos de texto de un sistema operativo a otro se debe considerar que existen al menos dos convenciones diferentes para señalar el término de una línea o lo que es lo mismo una nueva línea: Unix y Linux usan solo retorno de carro en cambio Microsoft Windows utiliza retorno de carro y [salto de línea].

## Diferencia entre texto plano y archivos de texto con diagramación

Los editores de textos "planos" se distinguen de los procesadores de texto en que se usan para escribir solo texto, sin formato y sin imágenes, es decir sin diagramación.
* El texto plano es representado en el editor mostrando todos los caracteres presentes en el archivo. Los únicos caracteres de formato son los caracteres de control del respectivo código de caracteres. En la práctica, estos son: salto de línea, retorno de carro y tabulación horizontal. El código de caracteres más usado es el ASCII.
* Generalmente, los documentos creados por un procesador de texto contienen más caracteres de control para darle al texto un formato o diagramación particular, a menudo protegidos de ser copiados por una marca registrada como por ejemplo negrita, cursiva, columnas, tablas, tipografías, etcétera. En un comienzo se utilizaron tales formatos solo en autoedición, pero hoy se utilizan incluso en el procesador de texto más sencillo.
* En la mayoría de los casos, los procesadores de texto pueden almacenar un texto plano en un archivo de texto plano, pero se le debe ordenar explícitamente que se desea esa opción, de otra manera podría guardarlo con algún formato especial.

## Tipos de editores de texto

Hay una gran variedad de editores de texto. Algunos son de uso general, mientras que otros están diseñados para escribir o programar en un lenguaje. Algunos son muy sencillos, mientras que otros tienen implementadas gran cantidad de funciones. El editor de texto debe ser considerado como una herramienta de trabajo del programador o administrador de la máquina. Como herramienta permite realizar ciertos trabajos, pero también requiere de aprendizaje para que el usuario conozca y obtenga destreza en su uso. La llamada "curva de aprendizaje" es una representación de la destreza adquirida a lo largo del tiempo de aprendizaje. Un editor puede ofrecer muchas funciones, pero si su curva de aprendizaje es muy larga, puede desanimar el aprendizaje y terminará siendo dejado de lado. Puede que un editor tenga una curva de aprendizaje muy empinada y corta, pero si no ofrece muchas funciones el usuario le reemplazará por otro más productivo. Es decir la elección del editor más apropiado depende de varios factores, alguno de ellos muy subjetivos. Esta coyuntura de intereses ha dado lugar a largas discusiones sobre la respuesta a la pregunta: ¿cuál es el mejor editor de texto? Muchos editores originalmente salidos de Unix o Linux, han sido Portabilidad portados a otros sistemas operativos, lo que permite trabajar en otros sistemas sin tener que aprender el uso de otro editor.
Algunos editores son sencillos mientras que otros ofrecen una amplia gama de funciones.
Editores para profesionales deben ser capaces de leer archivos de gran extensión, mayor que la capacidad de la memoria de acceso aleatorio de la máquina y también arrancar rápidamente, ya que el tiempo de espera disminuye la concentración y disminuye de por sí la productividad. Los editores de texto sirven para muchas cosas porque facilitan el trabajo.
Algunos editores de texto incluyen el uso de lenguajes de programación para automatizar engorrosos o repetidos procedimientos a realizar en el texto. Por ejemplo, Emacs puede ser adaptado a las necesidades del usuario, incluso las combinaciones de teclas para ejecutar funciones pueden ser adaptadas y es programable en Lisp.
Muchos editores de texto incluyen coloreado de sintaxis y funciones que ofrecen al usuario completar una palabra iniciada usando para ello la configuración.
Algunas funciones especiales son:
* Editores diseñados para un lenguaje de programación determinado, con coloreado de sintaxis, macros, completación de palabras, etcétera.
* Editores con regiones plegables. A veces no todo el texto es relevante para el usuario. Con este tipo de editores ciertas regiones con texto irrelevante pueden ser plegadas, escondidas, mostrando al usuario solo lo importante del texto.
* Un entorno de desarrollo integrado es un programa que incluye un editor y otras herramientas de trabajo, como compiladores, extractores de diferencias entre dos textos, repositorios, etcétera, incluidos en un solo programa.

## Funciones típicas del editor de texto
### Marcar región

Es la función que marca, visualmente o no, una parte del texto para ser elaborada con otras funciones. La región puede contener varias líneas del texto o bien varias columnas adyacentes del texto (región vertical).

### Búsqueda y reemplazo

El proceso de búsqueda de una palabra o una cadena de caracteres, en un texto plano y su reemplazo por otra. Existen diferentes métodos: global, por región, reemplazo automático, reemplazo con confirmación, búsqueda de texto o búsqueda de una expresión regular.

### Copiar, cortar y pegar

Sirve para copiar, trasladar o borrar una región marcada.

### Formatear

Los editores de texto permiten automatizar las únicas funciones de formateo que utilizan: quebrar la línea, sangrar, formatear comentarios o formatear listas.

### Deshacer y rehacer

Deshacer (Control + Z) es un comando en muchos programas de ordenador. El comando Rehacer invierte la de deshacer o avanza el búfer a un estado más actual. En la mayoría de las aplicaciones de Windows, el comando Deshacer se activa pulsando las combinaciones de teclas Ctrl+Z o Alt+Retroceso.

### Importar

Agregar o insertar el contenido de un archivo en el archivo que se está editando. Algunos editores permiten insertar la salida o respuesta a un programa cualquiera ejecutado en la línea de comandos al archivo que se está editando.

### Filtros

Algunos editores de texto permiten hacer pasar las líneas del texto o de una región por algún programa para modificarlas u ordenarlas. Por ejemplo, para ordenar alfabéticamente una lista de nombres o sacar un promedio de una lista de números.

### Acceso remoto

Un editor para trabajar en la administración de una red de computadoras debe ofrecer la funcionalidad de editar archivos en máquinas remotas, ya sea por medio del File Transfer Protocol (FTP), Secure Shell (SSH) o algún otro protocolo de red. Emacs lo puede hacer mediante el plugin tramp (ampliamente configurable con SSH, FTP, SCP, SFTP, etcétera), Ultraedit, del ambiente Windows, lo hace mediante FTP.

## Ejemplos

* Bloc de notas, editor integrado en Microsoft Windows, también conocido como Notepad (en inglés).
* Unix.
* Notepad++, editor de código fuente para Windows.
* Vi, editor muy común en Unix.
* Text Editor and Corrector (TECO), un editor para los ordenadores PDP de Digital Equipment Corporation, desarrollado en 1963. Es el antepasado de Emacs.