Текстовый редактор

Материал из Циклопедии
Перейти к навигации Перейти к поиску
Такие редакторы, как Leafpad, показанные здесь, часто входят в состав операционных систем в качестве вспомогательного приложения по умолчанию для открытия текстовых файлов.

Текстовый редактор — это компьютерная программа, которая редактирует простой текст.

Такие программы иногда называют программным обеспечением «блокнот» по названию Microsoft Notepad.[1][2][3] Текстовые редакторы поставляются с операционными системами и пакетами разработки программного обеспечения и могут использоваться для изменения файлов, таких как файлы конфигурации, файлы документации и исходный код языка программирования.[4]

Обычный текст или форматированный текст[править]

Между обычным текстом (созданным и редактируемым текстовыми редакторами) и форматированным текстом (например, созданным текстовыми редакторами или программным обеспечением для настольных издательских систем) существуют важные различия.

Обычный текст состоит исключительно из символьного представления. Каждый символ представлен последовательностью фиксированной длины из одного, двух или четырех байтов или последовательностью переменной длины от одного до четырех байтов в соответствии с определенными соглашениями о кодировании символов, такими как ASCII, ISO/IEC 2022, UTF−8 или Unicode. Эти соглашения определяют многие печатаемые символы, но также и непечатаемые символы, которые управляют потоком текста, такие как пробел, разрыв строки и разрыв страницы. Обычный текст не содержит никакой другой информации о самом тексте, даже о принятом соглашении о кодировке символов. Обычный текст хранится в текстовых файлах, хотя текстовые файлы не хранят исключительно простой текст. На заре компьютеров простой текст отображался с использованием моноширинного шрифта, так что горизонтальное выравнивание и форматирование столбцов иногда выполнялось с использованием символов пробела. По соображениям совместимости эта традиция не изменилась.

С другой стороны, форматированный текст может содержать метаданные, данные форматирования символов (например, шрифт, размер, вес и стиль), данные форматирования абзацев (например, отступ, выравнивание, распределение букв и слов, а также пространство между строками или другими абзацами) и данные спецификации страницы (например, размер, поля и направление чтения). Форматированный текст может быть очень сложным. Богатый текст может быть сохранен в двоичном формате (например, DOC), в текстовых файлах на языке разметки (например, RTF или HTML) или в их гибридной форме (например, Office Open XML).

Текстовые редакторы предназначены для открытия и сохранения текстовых файлов, содержащих простой текст или все, что может быть интерпретировано как обычный текст, включая разметку для форматированного текста или разметку для чего-то еще (например, SVG).

История[править]

До того, как появились текстовые редакторы, компьютерный текст вводился в карты с помощью клавишных машин. Физические коробки этих тонких картонных карт затем вставлялись в картридер. Файлы «изображения карты» на магнитной ленте и диске, созданные из таких колод, часто вообще не имели символов разделения строк и предполагали записи фиксированной длины из 80 символов. Альтернативой картам была перфолента. Она могла быть создана некоторыми телетайпами (такими как Teletype), которые использовали специальные символы для обозначения концов записей.

Первыми текстовыми редакторами были «линейные редакторы», ориентированные на терминалы типа телетайпа или пишущей машинки без дисплеев. Команды (часто одно нажатие клавиши) вносили изменения в файл в воображаемой точке вставки, называемой «курсором». Правки проверялись путем ввода команды на печать небольшого раздела файла и периодической печати всего файла. В некоторых редакторах строк курсор можно перемещать с помощью команд, в которых указывается номер строки в файле, текстовые строки (контекст) для поиска и, в конечном итоге, регулярные выражения. Линейные редакторы были большим усовершенствованием по сравнению с перфорацией клавиш. Некоторые линейные редакторы можно использовать с клавиатурой; команды редактирования могут быть взяты из колоды карт и применены к указанному файлу. Некоторые общие редакторы строк поддерживали режим «проверки», в котором команды изменения отображали измененные строки.

Когда стали доступны компьютерные терминалы с видеоэкранами, экранные текстовые редакторы (иногда называемые просто «экранные редакторы») стали обычным явлением. Одним из первых полноэкранных редакторов был O26, который был написан для операторской консоли компьютеров серии CDC 6000 в 1967 году. Еще одним ранним полноэкранным редактором был vi. Написанный в 1970-х, он до сих пор является стандартным редактором[5] в операционных системах Unix и Linux. Также в 1970-х был написан экранно-ориентированный редактор UCSD Pascal, который был оптимизирован как для исходного кода с отступами, так и для общего текста.[6] Emacs, один из первых проектов бесплатного программного обеспечения с открытым исходным кодом, — еще один ранний полноэкранный редактор или редактор реального времени, который был перенесен на многие системы.[7] Простота использования и скорость полноэкранного редактора (по сравнению с линейными редакторами) мотивировала многие ранние покупки видеотерминалов[8].

Основная структура данных в текстовом редакторе — это та, которая управляет строкой (последовательностью символов) или списком записей, которые представляют текущее состояние редактируемого файла. В то время как первые могли быть сохранены в одном длинном последовательном массиве символов, потребность в текстовых редакторах, которые могли бы быстрее вставлять текст, удалять текст и отменять/повторять предыдущие правки, привело к разработке более сложных структур данных последовательности.[9] Типичный текстовый редактор использует буфер промежутков, связанный список строк (как в PaperClip), таблицу элементов или веревку в качестве структуры данных последовательности.

Типы текстовых редакторов[править]

Некоторые текстовые редакторы небольшие и простые, в то время как другие предлагают широкие и сложные функции. Например, Unix и Unix-подобные операционные системы имеют редактор pico (или его вариант), но многие также включают редакторы vi и Emacs. Системы Microsoft Windows поставляются с простым Блокнотом, хотя многие люди, особенно программисты, предпочитают другие редакторы с большим количеством функций. В классической Mac OS от Apple Macintosh был собственный SimpleText, который был заменен в Mac OS X на TextEdit, сочетающий в себе функции текстового редактора с типичными для текстового процессора функциями, такими как линейки, поля и выбор нескольких шрифтов. Эти функции недоступны одновременно, но должны переключаться по команде пользователя или через программу, автоматически определяющую тип файла.

Большинство текстовых процессоров могут читать и записывать файлы в текстовом формате, что позволяет им открывать файлы, сохраненные в текстовых редакторах. Однако для сохранения этих файлов из текстового процессора необходимо убедиться, что файл записан в текстовом формате, и что любая кодировка текста или настройки спецификации не заслонят файл для предполагаемого использования. Текстовые процессоры, не поддерживающие WYSIWYG, такие как WordStar, легче использовать в качестве текстовых редакторов, и фактически они широко использовались как таковые в 1980-х годах. Формат файла по умолчанию этих текстовых процессоров часто напоминает язык разметки, при этом основным форматом является простой текст, а визуальное форматирование достигается с использованием непечатаемых управляющих символов или управляющих последовательностей. Более поздние текстовые процессоры, такие как Microsoft Word, хранят свои файлы в двоичном формате и почти никогда не используются для редактирования текстовых файлов.[10]

Некоторые текстовые редакторы могут редактировать необычно большие файлы, такие как файлы журналов или всю базу данных, помещенную в один файл. Более простые текстовые редакторы могут просто считывать файлы в основную память компьютера. Для файлов большего размера это может быть медленным процессом, и весь файл может не уместиться. Некоторые текстовые редакторы не позволяют пользователю начать редактирование до завершения считывания. Производительность редактирования также часто снижается в неспециализированных редакторах: редактору требуются секунды или даже минуты, чтобы реагировать на нажатия клавиш или команды навигации. Специализированные редакторы имеют такие оптимизации, как сохранение в памяти только видимой части больших файлов, что повышает производительность редактирования.

Некоторые редакторы являются программируемыми, то есть, например, их можно настроить для конкретных целей. С помощью программируемого редактора легко автоматизировать повторяющиеся задачи или добавить новые функции или даже реализовать новое приложение в рамках редактора. Один из распространенных мотивов настройки — заставить текстовый редактор использовать команды другого текстового редактора, с которым пользователь более знаком, или дублировать отсутствующие функции, от которых пользователь стал зависеть. Разработчики программного обеспечения часто используют настройки редактора, адаптированные к языку программирования или среде разработки, в которой они работают. Программируемость некоторых текстовых редакторов ограничивается расширением основных функций редактирования программы, но Emacs может быть расширен далеко за пределы редактирования текстовых файлов — для Интернета просмотр, чтение электронной почты, онлайн-чат, управление файлами или игра в игры, и ее часто называют средой выполнения Lisp с текстовым пользовательским интерфейсом. Emacs можно даже запрограммировать на подражание Vi, его сопернику в традиционных войнах редакторов культуры Unix.[11][12]

Важная группа программируемых редакторов использует REXX [a] в качестве языка сценариев. Эти «ортодоксальные редакторы» содержат «командную строку», в которой можно вводить команды и макросы, и текстовые строки, в которые можно вводить строковые команды [b] и макросы. Большинство таких редакторов являются производными от ISPF/PDF EDIT или XEDIT, флагманского редактора IBM для VM/SP через z/VM. Среди них THE, KEDIT, X2, Uni-edit и SEDIT.

Текстовый редактор, написанный или настроенный для конкретного использования, может определять, что редактирует пользователь, и помогать пользователю, часто заполняя условия программирования и показывая всплывающие подсказки с соответствующей документацией. Многие текстовые редакторы для разработчиков программного обеспечения включают подсветку синтаксиса исходного кода и автоматические отступы для облегчения чтения и написания программ. Редакторы программирования часто позволяют пользователю выбрать имя включаемого файла, функции или переменной, а затем перейти к его определению. Некоторые также позволяют легко вернуться к исходному разделу кода, сохранив начальное местоположение курсора или отобразив запрошенное определение во всплывающем окне или временном буфере. Некоторые редакторы сами реализуют эту возможность, но часто для поиска определений используется вспомогательная утилита, такая как ctags.

Типичные функции[править]

  • Найти и заменить — текстовые редакторы предоставляют обширные возможности для поиска и замены текста либо в группах файлов, либо в интерактивном режиме. Продвинутые редакторы могут использовать регулярные выражения для поиска и редактирования текста или кода.
  • Вырезать, копировать, вставить — большинство текстовых редакторов предоставляют методы для дублирования и перемещения текста внутри файла или между файлами.
  • Возможность обработки текста в кодировке UTF-8.
  • Форматирование текста — текстовые редакторы часто предоставляют базовые функции визуального форматирования, такие как перенос строк, автоматический отступ, форматирование маркированного списка с использованием символов ASCII, форматирование комментариев, выделение синтаксиса и т. д. Обычно они предназначены только для отображения и не вставляют коды форматирования в сам файл.
  • Отменить и повторить — как и в текстовых редакторах, текстовые редакторы позволяют отменить и повторить последнее или несколько изменений. Часто — особенно в старых текстовых редакторах — сохраняется только один уровень истории редактирования, и последовательная выдача команды отмены «переключает» только последнее изменение. Современные или более сложные редакторы обычно предоставляют многоуровневую историю, так что повторное выполнение команды отмены вернет документ к более ранним изменениям. Отдельная команда повтора будет циклически перемещать правки «вперед» к самым последним изменениям. Количество запоминаемых изменений зависит от редактора и часто настраивается пользователем.

См. также[править]

Источники[править]

  1. Creating a Winning E-Business. — Cengage Learning. — ISBN 1111796092.
  2. Peter Norton's New Inside the PC. — Sams Publishing. — ISBN 0672322897.
  3. Your Home PC: Making the Most of Your Personal Computer. — Tata McGraw-Hill Education. — ISBN 0070473544.
  4. The Best Free Text Editors for Windows, Linux, and Mac. — «Every operating system comes with a default, basic text editor, but most of us install our own enhanced text editors to get more features.»
  5. The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition. The IEEE and The Open Group (2004). Проверено 18 января 2010.
  6. (1978-07-01) «An introduction to the UCSD PASCAL system». Behavior Research Methods 10 (4): 531–534. DOI:10.3758/BF03205341.
  7. Introducing the Emacs editing environment.
  8. Multics Emacs: The History, Design and Implementation. — «Some Multics users purchased these terminals ..., using them either as "glass teletypes" or via "local editing."»
  9. Charles Crowley. «Data Structures for Text Sequences». Section «Introduction».
  10. Text Editors for Programmeres - Programming Tools. — «If you open a .doc file in a text editor, you will notice that most of the file is formatting codes. Text editors, however, do not add formatting codes, which makes it easier to compile your code.»
  11. From Vim to Emacs+Evil chaotic migration guide.
  12. Gitorious. Проверено 27 мая 2015.
 
DOS

ChiWriter MultiEdit WordPerfect Лексикон Слово и Дело

Windows

AkelPad BirEdit Bred Crimson Editor EditPlus EmEditor Notepad2 Notepad++ Notepad GNU PolyEdit Programmer’s Notepad PSPad RJ TextEd SoloPad Write WinEdt WordPad Блокнот

Linux / Unix

Ed Elvis gedit Kate KWrite Leafpad Mousepad Nano NEdit Vi

Кроссплатформенные

Acme CKeditor Emacs J JEdit JOE Komodo Edit Medit SciTE Sublime Text Sed UltraEdit Vim Geany

SDK

Colorer Scintilla SynEdit

Функции

Автодополнение Автоформатирование Подсветка синтаксиса Предиктивный ввод Сворачивание Отступы

списоккатегория