# Editor de texto

Um editor de texto é um aplicativo de edição de arquivos/ficheiros de texto.
Editores de texto são frequentemente equipados com sistemas operacionais ou pacotes de desenvolvimento de software, e pode ser usado para alterar arquivos de configuração .

## Arquivos de texto plano X Arquivos de processador de texto

Existem diferenças importantes entre o arquivos de texto plano (ou puro) criados por um editor de texto e arquivos de documento criado por processadores de texto como o Microsoft Word, WordPerfect, ou OpenOffice.org. Resumidamente:
* Um arquivo de texto puro é representado e editado, mostrando todos os caracteres que estão presentes no arquivo. Os caracteres somente utilizados por 'mark-up' são os usados caractere de controle e codificação de caracteres, na prática seriam: nova linha, tabulação e formfeed. A codificação de caracteres mais comumente utilizada é ASCII, sobretudo recentemente, como arquivos de texto plano são mais utilizados para a programação e configuração, menos freqüentemente utilizados para documentação do que no passado.
* Os documentos criados por um processador de texto geralmente contêm arquivo de formato específicos para caractere de controle além do que está definido no conjunto de caracteres. Estes permitem funções como negrito, itálico, fontes, colunas, tabelas, etc. Esses e outros símbolos comuns de formatação eram associados apenas a editoração eletrônica, mas agora são comuns em simples processadores.

## História

Antes existiam editores de texto, texto de computador eram feitos em cartões perfurados com máquinas de perfuração. O texto foi desenvolvido como uma caixa física destes cartões de papelão fino, a leitura é realizada no leitor de cartão.
Os editores de texto de primeira linha foram orientados sobre os terminais estilo máquina de escrever, e eles não fornecem uma janela ou tela de visualização orientada. Eles costumam ter comandos muito curto (para minimizar a digitação) que reproduziam a linha atual. Entre eles havia um comando para imprimir uma seção selecionada (s) do arquivo na máquina de escrever (ou impressora) em caso de necessidade. Um "cursor de edição" imaginária um ponto de inserção, poderia ser movido por comandos especiais que operavam com os números de linha de seqüências de texto específicos de cadeia de caracteres (contexto). Posteriormente, as seqüências de contexto, foram estendidos para expressões regulares. Para ver as alterações, era necessário ser impresso o arquivo na impressora. Estas "linha-base editores de texto" foram consideradas revolucionárias as melhorias sobre máquinas de perfurar. Na máquina de escrever caso terminais baseados não estavam disponíveis, elas foram adaptadas para perfurar equipamento. Neste caso, o usuário precisava perfurar os comandos para a plataforma separada de cartões e fornecer-los no computador para editar o arquivo.
Quando os terminais de computador com telas de vídeo tornaram disponíveis, tela de editores de texto base se tornou comum. Um dos primeiros "full screen" editores foi O26 - o que foi escrito para o operar no console das máquinas CDC 6000 da série 1967. Outro editor de tela cheia é o vi. Escrito na década de 1970, vi ainda é um editor padrão para o Unix e sistemas operacionais Linux. A produtividade da edição completa usando editores de tela (em relação à linha-base editores) motivou muitas das compras iniciais de terminais de vídeo.

## Tipos de editores de texto

Alguns editores de texto são pequenos e simples, enquanto outros oferecem uma ampla e complexa gama de funcionalidade. Por exemplo, Unix e sistemas operacionais Unix-like têm o editor vi (ou uma variante), mas muitos também incluem o editor Emacs. Sistemas Microsoft Windows vêm com o Bloco de notas muito simples, embora muitas pessoas, especialmente programadores preferem usar um dos muitos outros editores de texto do Windows com mais recursos. O Macintosh da Apple Inc. com seu clássico Mac OS tinha um editor nativo o SimpleText, que foi substituído no OSX pelo TextEdit. Alguns editores, como o WordStar, têm modos de operação dual permitindo-lhes ser um editor de texto ou um processador de texto e seguido pelo WordPerfect que foi o mais completo até a chegada dos mais atuais.
Editores de texto orientados para usuários profissionais não tem limite no tamanho do arquivo a ser aberto. Em particular, eles começam rapidamente, mesmo quando a edição de arquivos grandes, e são capazes de editar arquivos que são demasiado grandes para caber na memória principal do computador. Editores de texto mais simples, muitas vezes lêem arquivos em uma matriz na memória RAM. Em arquivos maiores é um processo lento, e arquivos muito grandes, muitas vezes não se ajustam.
A capacidade de ler e escrever arquivos muito grande é necessário por muitos usuários profissionais. Por exemplo, administradores de sistema pode precisar ler arquivos de log extensos. Os programadores podem precisar alterar grandes arquivos código fonte, ou analisar textos imensamente grandes, como um dicionário inteiro colocado em um único arquivo.
Alguns editores de texto são especializados em linguagens de computador para edição personalizada (editores de programação). Por exemplo, os Emacs pode ser personalizado para programação em Lisp. Estes geralmente permitem que o editor simule as combinações de teclas e as características de outros editores, para que os usuários não têm que aprender as combinações nativas de comandos.
Outro importante grupo de editores de programação usa o REXX um linguagem de script. Estes editores permitem que entram os dois comandos e declarações REXX diretamente na linha de comando na parte inferior da tela (pode ser escondido e ativado por uma combinação de teclas). Estes editores são geralmente referidos como "editores ortodoxos", a maioria dos representantes desta classe são derivados de Xedit, editor da IBM para VM/CMS. Entre eles estão: THE, Kedit, SlickEdit, X2, Uni-edit, UltraEdit, e Sedit. Alguns derivados do vi, como o Vim também flexível com suporte as linguagens de macro, e tem uma linha de comando na parte inferior para a introdução de comandos. Eles podem ser considerados um outro ramo da família de editores ortodoxos.
Muitos editores de texto para desenvolvedores de software incluem a realce de sintaxe destacando código fonte e automática complementação para fazer programas mais fáceis de ler e escrever. Editores de programação, muitas vezes permite selecionar o nome de um subprograma ou variável, e depois saltar para a sua definição e para trás. Muitas vezes, um utilitário como auxiliar ctags é usado para localizar as definições.

## As características típicas dos editores de texto
### Pesquisa e substituição

Sequência de pesquisa com uma sequência de substituição. Diferentes métodos são empregados, Global(ly) Pesquisar e Substituição, Condicional Pesquisa e Substituição, Incondicional Pesquisa e Substituição.

### Cortar, copiar e colar

A maioria dos editores de texto fornecem métodos para copiar e mover texto dentro do arquivo, ou entre os arquivos.

### Formatação de Texto

Editores de texto frequentemente fornecer recursos básicos de formatação, como quebra de linha, auto-indentação, a formatação de ponto lista, formatação de comentário, e assim por diante.

### Desfazer e refazer

Tal como acontece com os processadores de texto, editores de texto irá fornecer uma maneira de desfazer e refazer a última edição. Muitas vezes, especialmente com os editores de texto mais velhos, só há um nível de editar a história lembrada e sucessivamente, emite o comando de desfazer só "alternar" a última alteração. Modernos editores ou mais complexos fornecem geralmente uma história de múltiplos níveis tais que permite o comando de desfazer repetidamente irá reverter o documento para as edições sucessivamente mais velhas. Um comando separado de refazer o ciclo de edições "frente" para as mudanças mais recentes. O número de alterações lembrado depende do editor e muitas vezes é configurado pelo usuário.

### Importação

Ler ou fusão do conteúdo de outro arquivo de texto para o arquivo atualmente sendo editado. Alguns editores de texto oferecem uma maneira de inserir a saída de um comando emitido do shell do sistema operacional.

### Filtragem

Alguns editores de texto avançados permitem-lhe enviar todas ou partes do arquivo que está sendo editado para outro utilitário e ler o resultado de volta para o arquivo no lugar das linhas "filtradas". Esta por exemplo é útil, para classificar uma série de linhas em ordem alfabética ou numericamente, fazer cálculos matemáticos, e assim por diante.

### Realce de sintaxe

Outra característica útil de muitos editores de texto é destaque de sintaxe, onde o editor pode reconhecer ou ser instruídos que você está escrevendo uma linguagem específica, como HTML ou C++, e pode codificar o seu código de cores para você, para quebrar o texto e identificar facilmente tags, etc.

## Particularidades

Alguns editores incluem características especiais e funções extras, por exemplo:
* Editores de código fonte são editores de texto com funcionalidades adicionais para facilitar a produção de código fonte. Estes apresentam frequentemente sintaxe destacando e ferramentas de codificação ou macros de teclado semelhante a um editor HTML (veja abaixo).
* Editores Flexíveis. Esta subclasse inclui os chamados "editores ortodoxos", que são derivados do Xedit. A versão especializada e flexível é geralmente chamado de delinear (veja abaixo).
* IDEs (ambientes de desenvolvimento integrado) são projetados para gerir e dinamizar projectos de maior dimensão de programação. Eles normalmente são usados para a programação eles contêm muitos recursos desnecessários para edição de texto simples.
* Programadores World Wide Web tem uma grande variedade de editores de texto, dedicado à tarefa de desenvolvimento web. Estes criam os arquivos de texto plano que entregar as páginas web. Editores HTML incluem: Dreamweaver, E (editor de texto), Front Page, HotDog, Homesite, Nvu, Tidy, GoLive e BBEdit. Muitos oferecem a opção de visualizar um trabalho em andamento sobre um built-in do navegador web.
* Os matemáticos, físicos e cientistas da computação, muitas vezes produzir artigos e livros usando TeX ou LaTeX em arquivos de texto plano. Esses documentos são muitas vezes produzidos por um editor de texto padrão, mas algumas pessoas usam editores especializados em TeX.
* Outliners. Também chamada de editores baseados em árvore, porque combinam um esquema de árvore hierárquica com um editor de texto. Flexíveis (veja acima) geralmente pode ser considerada uma forma generalizada de esboçar.