# Editor di testo

Un editor di testo è un programma per la composizione di testi. Un semplice editor è generalmente incluso in ogni sistema operativo.

## Etimologia

Letteralmente "editor" è la traduzione di "editore" dal latino editor (genitivo: -oris) derivato da edere (mettere fuori, pubblicare).

## Funzioni e utilizzo

Scopo di un editor è facilitare la scrittura di un testo.
Poiché la scrittura di un testo è pratica comune a parecchie attività, esistono editor di ogni sorta: dai semplici editor di testo (come ad esempio il Notepad di Microsoft) che consentono di scrivere testo puro, ovvero senza formattazione alcuna, ai più complessi programmi di videoscrittura (come ad esempio Word sempre di Microsoft) che, oltre alla battitura del testo, consentono di formattare, inserire immagini, produrre documenti, pagine web, opuscoli, articoli, eccetera e vengono propriamente chiamati elaboratori di testo.
Vi sono poi molte altre situazioni in cui è necessario scrivere e per le quali i due strumenti (editor di testo e programma di videoscrittura) risultano inadeguati. Ad esempio nella programmazione alcuni editor suggeriscono la sintassi e aiutano nel debug.

## WYSIWYG e Web Editor

Altra situazione simile alla programmazione è quella del linguaggio formale (di cui i linguaggi di programmazione sono un esempio).
I programmi di videoscrittura possono essere classificati come WYSIWYG (acronimo di What You See Is What You Get) o simbolici.
Nel primo caso il software visualizza il documento così come dovrebbe essere stampato: l'utente in genere può selezionare la porzione di testo che intende modificare e, tramite ad una serie di parametri e comandi disponibili grazie ad un'interfaccia semplificata, vedere immediatamente il risultato conseguente. In genere si tratta di programmi destinati all'utenza domestica o ai piccoli uffici, dove non sono richieste caratteristiche particolari dei software e dove gli utenti non sono professionisti. Esempi di questi programmi sono AbiWord, Writer (compreso nella suite LibreOffice) o Microsoft Word.
La seconda categoria, quella dei programmi di videoscrittura simbolici (o di markup), si distingue dalla precedente perché le istruzioni di formattazione sono direttamente integrate nel testo e possono assumere la forma di marcatori o tag determinati dal particolare linguaggio utilizzato. Il documento risultante generalmente non mostra le istruzioni utilizzate ma solo le modifiche derivanti da queste.
Questo è un esempio di codice HTML che trasforma la stringa "Wikipedia" in un link ad una pagina web (in questo caso, "http://it.wikipedia.org") se visualizzato in un browser Web.
Non solo le pagine HTML ma, ad esempio, anche le voci di Wikipedia sono prodotte in questo modo. LaTeX, il programma di videoscrittura adottato dalla comunità scientifica per la sua versatilità e potenza è l'esempio per eccellenza. Trattandosi di programmi più potenti e flessibili, spesso richiedono maggiori conoscenze e competenze per essere utilizzati con profitto.
Alcune funzioni molto utili possono essere l'evidenziazione della sintassi dei linguaggi di programmazione, il controllo ortografico e grammaticale di un testo o la generazione di un'anteprima di stampa.
Per quel che concerne la programmazione, le ditte che producono strumenti di sviluppo (come Borland) forniscono degli ambienti integrati comprensivi dell'editor.
Grazie all'avvento dell'open source ora in rete si trovano molti editor gratuiti e ben funzionanti. Ad esempio Eclipse è tra i più noti ambienti integrati opensource nato per la programmazione in Java ma grazie al lavoro di molti volenterosi ora esistono parecchi plugin che lo rendono adottabile anche per altri linguaggi di programmazione (ad esempio PHP); inoltre è stato adattato anche al mondo wiki e, in particolare, al software MediaWiki, ideato per la creazione delle pagine Wikipedia.

## Editor di testo più diffusi
### Freeware

* PSPad
* Visual Studio Code

### Software libero

* ed
* Elvis
* Pico
* Nano
* TECO
* Emacs
* vi
* Vim
* Notepad++
* RText

### Software proprietario

* edlin
* PE32
* Sublime Text