stringtranslate.com

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

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

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

Обычный текст и форматированный текст

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

Простой текст состоит исключительно из символов. Каждый символ представлен последовательностью фиксированной длины из одного, двух или четырех байтов или последовательностью переменной длины из одного-четырех байтов в соответствии с конкретными соглашениями о кодировании символов , такими как ASCII , ISO/IEC 2022 , Shift . JIS , UTF-8 или UTF-16 . Эти соглашения определяют множество печатных символов, а также непечатаемые символы , которые управляют потоком текста, такие как пробел , разрыв строки и разрыв страницы . Простой текст не содержит никакой другой информации о самом тексте, даже о используемом соглашении о кодировке символов. Обычный текст хранится в текстовых файлах , хотя текстовые файлы не хранят исключительно простой текст. С первых дней существования компьютеров простой текст (когда-то по необходимости, а теперь по соглашению) обычно отображался с использованием моноширинного шрифта , так что горизонтальное выравнивание и форматирование по столбцам иногда выполнялись с использованием пробельных символов.

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

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

История

Коробка перфокарт с несколькими программными колодами.

До появления текстовых редакторов компьютерный текст набивался на карты с помощью перфокарт . [5] Физические коробки с этими тонкими картонными карточками затем вставлялись в кард-ридер . Файлы изображений магнитной ленты , барабана и дисковых карт , созданные из таких колод карт, часто вообще не имели символов-разделителей строк и предполагали записи фиксированной длины [a] из 80 или 90 символов [6] . [7] Альтернативой карточкам стала перфолента . Его могли создать некоторые телетайпы (например, телетайп), которые использовали специальные символы для обозначения конца записей. [8] Некоторые ранние операционные системы включали пакетные текстовые редакторы, либо интегрированные с языковыми процессорами, либо в виде отдельных служебных программ; Одним из первых примеров была возможность редактировать исходные файлы SQUOZE для SCAT [9] в операционной системе SHARE .

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

Когда стали доступны компьютерные терминалы с видеоэкранами, появились экранные текстовые редакторы (иногда называемые просто «экранными редакторами»).стал обычным явлением. Одним из первых полноэкранных редакторов был O26 , который был написан для консоли оператора компьютеров серии CDC 6000 в 1967 году. Ещё одним ранним полноэкранным редактором был vi . Написанный в 1970-х годах, он до сих пор является стандартным редактором [10] для операционных систем Unix и Linux . В 1970-х годах также был написан экранно-ориентированный редактор UCSD Pascal , оптимизированный как для исходного кода с отступом, так и для общего текста. [11] Emacs , один из первых бесплатных программных проектов с открытым исходным кодом, является еще одним ранним полноэкранным редактором или редактором реального времени, который был портирован на многие системы. [12] Commodore PET 1977 года был первым компьютером массового рынка, оснащенным полноэкранным редактором. Простота использования и скорость полноэкранного редактора (по сравнению с построчными редакторами) послужили мотивацией для многих ранних покупок видеотерминалов. [13]

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

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

Emacs, текстовый редактор, популярный среди программистов, работающий в Microsoft Windows.
gedit — текстовый редактор, поставляемый с GNOME

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

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

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

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

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

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

Типичные особенности

Расширенные возможности

Специализированные редакторы

Некоторые редакторы включают специальные функции и дополнительные функции, например:

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

Смотрите также

Примечания

  1. ^ К концу 1960-х годов были доступны редакторы, поддерживающие записи переменной длины.
  2. ^ Первоначально макросы были написаны на ассемблере, CLIST ( TSO ), CMS EXEC ( VM ), EXEC2 (VM/SE) или PL/I , но большинство пользователей отказались от CLIST, EXEC и EXEC2, как только стал доступен REXX.
  3. ^ Команда строки — это команда, введенная в область ввода порядкового номера, связанная с определенной строкой текста и область действия которой ограничена этой строкой, или, в случае команды блока, связанная с блоком строк между началом и завершающие команды строки. Примером последнего может быть ввод команды ucc (заглавные буквы блока) в области ввода двух строк; это имеет тот же эффект, что и ввод uc (заглавные буквы) в область ввода каждой строки диапазона.

Рекомендации

  1. ^ Х. Альберт Нэпьер; Олли Н. Риверс; Стюарт Вагнер (2005). Создание прибыльного электронного бизнеса. Cengage Обучение. п. 330. ИСБН 1111796092.
  2. ^ Питер Нортон; Скотт Х. Кларк (2002). «Новое внутри ПК» Питера Нортона. Издательство Самс. п. 54. ИСБН 0672322897.
  3. ^ Л. Гопалакришнан; Г. Падманабхан; Судхат Шукла (2003). Ваш домашний компьютер: максимально эффективно используйте свой персональный компьютер. Тата МакГроу-Хилл Образование . п. 190. ИСБН 0070473544.
  4. ^ «Лучшие бесплатные текстовые редакторы для Windows, Linux и Mac». 28 апреля 2012 г. В каждой операционной системе по умолчанию имеется базовый текстовый редактор, но большинство из нас устанавливают собственные расширенные текстовые редакторы, чтобы получить больше возможностей.
  5. ^ Лауден, Кеннет С.; Ламберт, Кеннет А. (26 января 2011 г.). Языки программирования: принципы и практика. Cengage Обучение. п. 5. ISBN 978-1-133-38749-7.
  6. ^ «ПРЕОБРАЗОВАТЕЛЬ ПЕРФОНИРОВАННОЙ КАРТЫ В МАГНИТНУЮ ЛЕНТУ UNIVAC, 90 КОЛОНН» (PDF) . Система автоматизации данных UNIVAC II (PDF) . Подразделение Remington-Rand Univac корпорации Sperry Rand . 1957. с. 246 . Проверено 16 декабря 2022 г.,
  7. ^ Алавудин, А.; Венкатешваран, Н. (18 августа 2008 г.). Компьютерно-интегрированные производства. PHI Learning Pvt. ООО с. 180. ИСБН 978-81-203-3345-1.
  8. ^ Аптон, Эбен; Дантеманн, Джеффри; Робертс, Ральф; Мамтора, Тим; Эверард, Бен (22 августа 2016 г.). Изучение компьютерной архитектуры с помощью Raspberry Pi. Джон Уайли и сыновья. стр. 232–234. ISBN 978-1-119-18394-5.
  9. ^ «Изменить и загрузить» (PDF) . Справочное руководство SOS (PDF) . ИБМ . Ноябрь 1959 г. [Распространение № 1, изданное в 1959 г.]. п. 05.01.01 . Проверено 15 декабря 2022 г.
  10. ^ «Базовые спецификации открытой группы, выпуск 6, IEEE Std 1003.1, издание 2004 г.» . IEEE и Открытая группа. 2004 . Проверено 18 января 2010 г.
  11. ^ Л. Боулз, Кеннет; Холлан, Джеймс (1 июля 1978 г.). «Введение в систему UCSD PASCAL». Методы исследования поведения . 10 (4): 531–534. дои : 10.3758/BF03205341 .
  12. ^ «Представляем среду редактирования Emacs» . ИБМ . Архивировано из оригинала 6 июня 2014 г. Проверено 6 июня 2014 г.
  13. ^ «Multics Emacs: история, дизайн и реализация». Некоторые пользователи Multics приобрели эти терминалы…, используя их либо как «стеклянные телетайпы», либо посредством «локального редактирования».
  14. ^ Чарльз Кроули. «Структуры данных для текстовых последовательностей». Раздел «Введение».
  15. ^ «Текстовые редакторы для программистов — инструменты программирования» . Если вы откроете файл .doc в текстовом редакторе, вы заметите, что большая часть файла представляет собой коды форматирования. Однако текстовые редакторы не добавляют коды форматирования, что упрощает компиляцию кода.
  16. ^ "Руководство по хаотичной миграции Vim в Emacs Evil" . juanjoalvarez.net .
  17. ^ "Гиторий". Архивировано из оригинала 28 мая 2015 года . Проверено 27 мая 2015 г.
  18. ^ «Поиск». Руководство пользователя Блокнота++ . Проверено 21 декабря 2021 г.
  19. ^ Филипп Аксани. «Выбор лучшего шрифта для программирования». 2023.

Внешние ссылки