Текстовый редактор
Текстовый редактор — это тип компьютерной программы , редактирующей обычный текст . Такие программы иногда называют « блокнотами » (например, «Блокнот Windows »). [1] [2] [3] Текстовые редакторы поставляются с операционными системами и пакетами разработки программного обеспечения и могут использоваться для изменения таких файлов, как файлы конфигурации , файлы документации и языка программирования исходный код . [4]
Обычный текст и форматированный текст
[ редактировать ]Существуют важные различия между обычным текстом (созданным и редактируемым текстовыми редакторами) и форматированным текстом (например, созданным текстовыми процессорами или настольными издательскими программами ).
Простой текст состоит исключительно из символов. Каждый символ представлен последовательностью фиксированной длины из одного, двух или четырех байтов или последовательностью переменной длины из одного-четырех байтов в соответствии с конкретными соглашениями о кодировании символов , такими как ASCII , ISO/IEC 2022 , Shift. JIS , UTF-8 или UTF-16 . Эти соглашения определяют множество печатных символов, а также непечатаемые символы , которые управляют потоком текста, такие как пробел , разрыв строки и разрыв страницы . Простой текст не содержит никакой другой информации о самом тексте, даже о используемом соглашении о кодировке символов. Обычный текст хранится в текстовых файлах , хотя текстовые файлы не хранят исключительно простой текст. С первых дней существования компьютеров простой текст (когда-то по необходимости, а теперь по соглашению) обычно отображался с использованием моноширинного шрифта , так что горизонтальное выравнивание и форматирование по столбцам иногда выполнялось с использованием пробельных символов.
С другой стороны, форматированный текст может содержать метаданные, данные форматирования символов (например, шрифт, размер, вес и стиль ), данные форматирования абзацев (например, отступы, выравнивание, распределение букв и слов, а также расстояние между строками или другими абзацами) и данные спецификации страницы (например, размер, поля и направление чтения). Форматированный текст может быть очень сложным. Форматированный текст может быть сохранен в двоичном формате (например, DOC ), текстовых файлах, соответствующих языку разметки (например, RTF или HTML ), или в гибридной форме того и другого (например, Office Open XML ).
Текстовые редакторы предназначены для открытия и сохранения текстовых файлов, содержащих либо простой текст, либо что-либо, что можно интерпретировать как обычный текст, включая разметку для форматированного текста или разметку для чего-либо еще (например, SVG ).
История
[ редактировать ]До появления текстовых редакторов компьютерный текст набивался на карты с помощью перфокарт . [5] Физические коробки с этими тонкими картонными карточками затем вставлялись в устройство для чтения карт . магнитной ленты , барабана и дисковых Файлы изображений карт , созданные из таких колод карт, часто вообще не имели символов-разделителей строк и предполагали фиксированную длину. [а] 80- или 90-символьный [6] записи. [7] Альтернативой карточкам стала перфолента . Его могли создать некоторые телетайпы (например, телетайп), которые использовали специальные символы для обозначения конца записей. [8] Некоторые ранние операционные системы включали пакетные текстовые редакторы, либо интегрированные с языковыми процессорами, либо в виде отдельных служебных программ; Одним из первых примеров была возможность редактировать SQUOZE для SCAT. исходные файлы [9] в операционной системе SHARE .
Первыми интерактивными текстовыми редакторами были «строчные редакторы», ориентированные на терминалы типа телетайпа или пишущей машинки без дисплеев. Команды (часто одно нажатие клавиши) вносили изменения в файл в воображаемой точке вставки, называемой «курсором». Изменения проверялись путем ввода команды печати небольшого фрагмента файла и периодической печати всего файла. В некоторых редакторах строк курсор можно было перемещать с помощью команд, указывающих номер строки в файле, текстовые строки (контекст), по которым нужно искать, и, в конечном итоге, регулярные выражения . Линейные редакторы были серьезным улучшением по сравнению с набором клавиш. Некоторые строковые редакторы можно использовать с помощью нажатия клавиши; команды редактирования можно было взять из колоды карт и применить к указанному файлу. Некоторые распространенные редакторы строк поддерживают режим «проверки», в котором команды изменения отображают измененные строки.
Когда стали доступны компьютерные терминалы с видеоэкранами, экранные текстовые редакторы (иногда называемые просто «экранными редакторами») стали обычным явлением. Одним из первых полноэкранных редакторов был O26 , который был написан для консоли оператора компьютеров серии CDC 6000 в 1967 году. Ещё одним ранним полноэкранным редактором был vi . Написанный в 1970-х годах, он до сих пор является стандартным редактором. [10] в Unix и Linux операционных системах . В 1970-х годах также был написан экранно-ориентированный редактор UCSD Pascal , оптимизированный как для исходного кода с отступом, так и для общего текста. [11] Emacs , один из первых бесплатных программных проектов с открытым исходным кодом , является еще одним ранним полноэкранным редактором или редактором реального времени, который был портирован на многие системы. [12] 1977 года Commodore PET был первым компьютером массового рынка, оснащенным полноэкранным редактором. Простота использования и скорость полноэкранного редактора (по сравнению с построчными редакторами) послужили мотивацией для многих ранних покупок видеотерминалов. [13]
Основная структура данных в текстовом редакторе — это структура, которая управляет строкой (последовательностью символов) или списком записей , которые представляют текущее состояние редактируемого файла.В то время как первый может храниться в одном длинном последовательном массиве символов,Потребность в текстовых редакторах, которые могли бы быстрее вставлять текст, удалять текст и отменять/повторять предыдущие изменения, привела к разработке более сложных структур данных последовательности. [14] Типичный текстовый редактор использует буфер пробелов , связанный список строк (как в PaperClip ), таблицу частей или веревку в качестве структуры данных последовательности.
Типы текстовых редакторов
[ редактировать ]Некоторые текстовые редакторы маленькие и простые, тогда как другие предлагают широкие и сложные функции. Например, в Unix и Unix-подобных операционных системах есть редактор pico (или его вариант), но многие из них также включают редакторы vi и Emacs. Системы Microsoft Windows поставляются с простым Блокнотом , хотя многие люди, особенно программисты, предпочитают другие редакторы с большим количеством функций. В Apple Macintosh классической Mac OS существовал собственный TeachText , позже замененный на SimpleText в 1994 году, который был заменен в Mac OS X на TextEdit , который сочетает в себе функции текстового редактора с типичными для текстового процессора, такими как линейки, поля и выбор нескольких шрифтов. Эти функции не доступны одновременно, их необходимо переключать по команде пользователя или через программу, автоматически определяющую тип файла .
Большинство текстовых процессоров могут читать и записывать файлы в текстовом формате, что позволяет им открывать файлы, сохраненные в текстовых редакторах. Однако для сохранения этих файлов из текстового процессора необходимо убедиться, что файл записан в обычном текстовом формате и что любая кодировка текста или настройки спецификации не будут скрывать файл для его предполагаемого использования. Текстовые процессоры, не поддерживающие WYSIWYG , такие как WordStar , легче использовать в качестве текстовых редакторов, и фактически они широко использовались как таковые в 1980-х годах. по умолчанию Формат файла в этих текстовых процессорах часто напоминает язык разметки, при этом базовым форматом является обычный текст, а визуальное форматирование достигается с помощью непечатаемых управляющих символов или escape-последовательностей . Более поздние текстовые процессоры, такие как Microsoft Word, хранят файлы в двоичном формате и почти никогда не используются для редактирования текстовых файлов. [15]
Некоторые текстовые редакторы могут редактировать необычно большие файлы , например файлы журналов или всю базу данных , помещенную в один файл. компьютера Более простые текстовые редакторы могут просто считывать файлы в основную память . Для файлов большего размера этот процесс может оказаться медленным, и весь файл может не поместиться. Некоторые текстовые редакторы не позволяют пользователю начать редактирование до завершения считывания. Производительность редактирования также часто страдает в неспециализированных редакторах: редактору требуются секунды или даже минуты, чтобы ответить на нажатия клавиш или команды навигации. Специализированные редакторы имеют такие оптимизации, как сохранение в памяти только видимой части больших файлов, что повышает производительность редактирования.
Некоторые редакторы являются программируемыми, то есть, например, их можно настроить для конкретных целей. С помощью программируемого редактора легко автоматизировать повторяющиеся задачи, добавить новые функции или даже реализовать новое приложение в рамках редактора. Одним из распространенных мотивов настройки является заставить текстовый редактор использовать команды другого текстового редактора, с которым пользователь более знаком, или дублировать недостающие функции, от которых стал зависеть пользователь. Разработчики программного обеспечения часто используют настройки редактора, адаптированные к языку программирования или среде разработки, в которой они работают. Программируемость некоторых текстовых редакторов ограничивается расширением основных функций редактирования программы, но Emacs может быть расширен далеко за пределы редактирования текстовых файлов - для Интернета. просмотр, чтение электронной почты, онлайн-чат, управление файлами или игры и часто рассматриваются как среда выполнения Lisp с текстовым пользовательским интерфейсом . Emacs можно даже запрограммировать для эмуляции Vi , его конкурента в традиционной среде. редакторские войны культуры Unix . [16] [17]
Важная группа программируемых редакторов использует REXX. [б] как язык сценариев. Эти «ортодоксальные редакторы» содержат «командную строку», в которую можно вводить команды и макросы, а также текстовые строки, в которые можно вводить команды. [с] и макросы можно набирать. Большинство таких редакторов являются производными от ISPF/PDF EDIT или XEDIT , флагманского редактора IBM для VM/SP до z/VM . Среди них THE , KEDIT , X2, Uni-edit и SEDIT .
Текстовый редактор, написанный или настроенный для конкретного использования, может определить, что редактирует пользователь, и помочь ему, часто заполняя термины программирования и показывая всплывающие подсказки с соответствующей документацией. Многие текстовые редакторы для разработчиков программного обеспечения включают подсветку синтаксиса исходного кода и автоматические отступы , чтобы программы было легче читать и писать. Редакторы программ часто позволяют пользователю выбрать имя включаемого файла , функции или переменной , а затем перейти к его определению. Некоторые из них также позволяют легко вернуться к исходному разделу кода, сохраняя исходное местоположение курсора или отображая запрошенное определение во всплывающем окне или временном буфере. вспомогательная утилита, такая как ctags Некоторые редакторы реализуют эту возможность самостоятельно, но часто для поиска определений используется .
Типичные особенности
[ редактировать ]- Найти и заменить. Текстовые редакторы предоставляют широкие возможности для поиска и замены строк текста как по отдельности, так и по группам файлов на открытых вкладках или в выбранной папке. Продвинутые редакторы могут использовать регулярные выражения для поиска и редактирования текста или кода. Дополнительные функции могут включать дополнительную чувствительность к регистру , историю поисковых запросов для быстрого вызова и автозаполнения , а также отображение нескольких результатов в одном месте. [18] [ нужен лучший источник ]
- Вырезать, копировать и вставлять . Большинство текстовых редакторов предоставляют методы для дублирования и перемещения текста внутри файла или между файлами.
- Возможность обработки текста в кодировке UTF-8 .
- Форматирование текста . Текстовые редакторы часто предоставляют базовые функции визуального форматирования, такие как перенос строк , автоматический отступ , маркированного списка форматирование с использованием символов ASCII , форматирование комментариев , подсветка синтаксиса и т. д. Обычно они предназначены только для отображения и не вставляют коды форматирования в сам файл.
- Отмена и повтор . Как и в случае с текстовыми процессорами, текстовые редакторы предоставляют возможность отменить и повторить последнее редактирование или многое другое. Часто — особенно в старых текстовых редакторах — запоминается только один уровень истории изменений, и последовательный ввод команды отмены приведет только к «переключению» последнего изменения. Современные или более сложные редакторы обычно предоставляют многоуровневую историю, поэтому повторный ввод команды отмены приведет к возврату документа к более ранним изменениям. Отдельная команда повтора будет циклически перемещать правки вперед к самым последним изменениям. Количество запоминаемых изменений зависит от редактора и часто настраивается пользователем.
- Возможность перехода к указанному номеру строки. [ нужна ссылка ]
Расширенные функции
[ редактировать ]- Определение макроса или процедуры: для определения новых команд или функций как комбинаций предыдущих команд или других макросов, возможно, с переданными параметрами или с вложением макросов.
- Профили для сохранения параметров, установленных пользователем между сеансами редактирования.
- Макросы профиля с именами, указанными, например, в среде, профиле, выполняются автоматически в начале сеанса редактирования или при открытии нового файла.
- Редактирование нескольких файлов: возможность редактировать несколько файлов во время сеанса редактирования, возможно, запоминая курсор текущей строки каждого файла, вставлять повторяющийся текст в каждый файл, копировать или перемещать текст между файлами, сравнивать файлы рядом. (возможно, с плиточным многодокументным интерфейсом ) и т.д.
- Редакторы с несколькими представлениями: возможность отображать несколько представлений одного и того же файла с независимым отслеживанием курсора, синхронизацией изменений между окнами, но предоставляя те же возможности, что и для независимых файлов.
- Свернуть/развернуть, также называемое сворачиванием : возможность временно исключать фрагменты текста из поля зрения. Это может быть основано либо на диапазоне номеров строк, либо на каком-либо синтаксическом элементе, например, исключая все, что находится между BEGIN; и соответствующий END; .
- Редактирование по столбцам; возможность изменять или вставлять данные в определенный столбец или перемещать данные в определенные столбцы.
- Преобразование данных – чтение или объединение содержимого другого текстового файла с файлом, редактируемым в данный момент. Некоторые текстовые редакторы предоставляют возможность вставлять выходные данные команды, выданной в оболочку операционной системы . Кроме того, функция изменения регистра может переводить в нижний или верхний регистр.
- Фильтрация . Некоторые расширенные текстовые редакторы позволяют редактору отправлять все или разделы редактируемого файла в другую утилиту и считывать результат обратно в файл вместо «фильтруемых строк». Это, например, полезно для сортировки ряда строк по алфавиту или по номерам, выполнения математических вычислений, создания отступов в исходном коде и т. д.
- Подсветка синтаксиса — контекстно выделяет исходный код , языки разметки , файлы конфигурации и другой текст, который отображается в организованном или предсказуемом формате. Редакторы обычно позволяют пользователям настраивать цвета и стили, используемые для каждого элемента языка. Некоторые текстовые редакторы также позволяют пользователям устанавливать и использовать темы, чтобы изменить внешний вид редактора всего пользовательского интерфейса .
- Редакторы, ориентированные на синтаксис. Некоторые редакторы поддерживают синтаксис одного или нескольких языков и позволяют выполнять операции с синтаксическими единицами, например вставлять новое предложение WHEN в оператор SELECT .
- Расширяемость - текстовый редактор, предназначенный для использования программистами, должен предоставлять некоторый механизм подключаемых модулей или быть доступным для сценариев , чтобы программист мог настроить редактор с функциями, необходимыми для управления отдельными программными проектами, настроить функциональность или привязки клавиш для определенных языков программирования или контроля версий систем . или соответствовать определенным стилям кодирования .
- Навигация курсора может различаться в разных текстовых редакторах. Например, нажав End дважды можно перейти к концу перенесенной строки после того, как одно нажатие перейдет к концу строки текста на экране. Терминалы с блочной ориентацией обычно имеют специальные клавиши перемещения курсора, как и клавиатуры на персональных компьютерах.
- Командная строка — некоторые редакторы, например, ISPF , XEDIT , имеют на экране специальное поле для ввода команд, а не текста. В зависимости от редактора пользователю, возможно, придется использовать клавиши курсора для переключения между командными и текстовыми полями, или редактор может интерпретировать, например, определенные функциональные клавиши как запросы на переключение.
- Команды строки, также известные как команды префикса или команды последовательности. Некоторые редакторы рассматривают файл как массив текстовых строк со связанными номерами строк или порядковыми номерами и имеют отдельное поле номера строки для каждого текстового поля. Команда строки — это строка, которую пользователь вводит в поле номера строки и которую редактор распознает как команду, действующую на эту конкретную строку или блок строк, например LC для перевода строки в нижний регистр, ))3 для сдвига строки заблокируйте три столбца справа. Некоторые редакторы также поддерживают макросы строк, также известные как макросы префиксов или макросы последовательности. Несмотря на префикс имени команды , некоторые редакторы позволяют отображать поле последовательности после текстового поля.
- Текстовые редакторы, особенно редакторы исходного кода , часто по умолчанию используют моноширинный шрифт, который четко различает похожие символы ( гомоглифы ), такие как двоеточие и точка с запятой. [19]
Специализированные редакторы
[ редактировать ]Некоторые редакторы включают специальные функции и дополнительные функции, например:
- Редакторы исходного кода — это текстовые редакторы с дополнительными функциями, облегчающими создание исходного кода. Они часто имеют программируемые пользователем функции подсветки синтаксиса и навигации по коду, а также инструменты кодирования или макросы клавиатуры , аналогичные редактору HTML.
- Складные редакторы . Этот подкласс включает так называемые «ортодоксальные редакторы», являющиеся производными от Xedit. Редакторы, реализующие свертывание без особенностей программирования, обычно называются планировщиками (см. ниже).
- Контуристы . Редакторы также называются древовидными, поскольку они сочетают в себе иерархическое представление в виде дерева с текстовым редактором. Складывание (см. выше) можно считать специализированной формой обрисовки.
- IDE (интегрированные среды разработки) предназначены для управления и оптимизации крупных проектов программирования. Обычно они используются только для программирования, поскольку содержат множество функций, ненужных для простого редактирования текста.
- Авторам Всемирной паутины предлагаются разнообразные HTML-редакторы, предназначенные для создания веб-страниц . К ним относятся: Dreamweaver , KompoZer и E Text Editor . Многие предлагают возможность просмотра незавершенной работы с помощью встроенного механизма рендеринга HTML или стандартного веб-браузера . Однако большая часть веб-разработки выполняется на динамическом языке программирования , таком как Ruby или PHP, с использованием редактора исходного кода или IDE. HTML-код, предоставляемый всеми статическим веб-сайтами, кроме самых простых, хранится в виде отдельных файлов шаблонов , которые собираются программным обеспечением, управляющим сайтом, и не составляют полный HTML-документ.
- Математики, физики и компьютерщики часто пишут статьи и книги, используя TeX или LaTeX в виде простых текстовых файлов. Такие документы часто создаются с помощью стандартного текстового редактора, но некоторые используют специализированные редакторы TeX .
- Совместные редакторы позволяют нескольким пользователям одновременно работать над одним и тем же документом из удаленных мест по сети. Изменения, внесенные отдельными пользователями, отслеживаются и автоматически объединяются в документ, чтобы исключить возможность противоречивых изменений. Эти редакторы также обычно включают компонент онлайн-чата для обсуждения между редакторами.
- Редакторы, не отвлекающие внимание, предоставляют минималистичный интерфейс с целью изолировать автора от остальных приложений и операционной системы, позволяя тем самым сосредоточиться на написании, не отвлекаясь на элементы интерфейса, такие как панель инструментов или область уведомлений .
Программируемые редакторы обычно можно усовершенствовать для выполнения любой или всех этих функций, но более простые редакторы ориентированы только на одну или, как gPHPedit , ориентированы на один язык программирования.
См. также
[ редактировать ]- Список текстовых редакторов
- Сравнение текстовых редакторов
- Редактор войны
- Просмотрщик файлов – не меняет файл, работает быстрее для очень больших файлов и может быть более безопасным.
- Шестнадцатеричный редактор – используется для редактирования двоичных файлов.
- Редактор потока – используется для неинтерактивного редактирования.
- Редактор структуры – любой редактор документов, знающий основную структуру документа.
- WYSIWYG – аббревиатура от «Что видишь, то и получаешь».
- Визуальный редактор – компьютерное программное обеспечение для редактирования текстовых файлов с использованием текстового или графического пользовательского интерфейса.
Примечания
[ редактировать ]- ^ К концу 1960-х годов были доступны редакторы, поддерживающие записи переменной длины.
- ^ Первоначально макросы были написаны на ассемблере, CLIST ( TSO ), CMS EXEC ( VM ), EXEC2 (VM/SE) или PL/I , но большинство пользователей отказались от CLIST, EXEC и EXEC2, как только стал доступен REXX.
- ^ Команда строки — это команда, введенная в область ввода порядкового номера, связанная с определенной строкой текста и область действия которой ограничена этой строкой, или, в случае команды блока, связанная с блоком строк между началом и завершающие команды строки. Примером последнего может быть ввод команды ucc (заглавные буквы блока) в области ввода двух строк; это имеет тот же эффект, что и ввод uc (заглавные буквы) в область ввода каждой строки диапазона.
Ссылки
[ редактировать ]- ^ Х. Альберт Нэпьер; Олли Н. Риверс; Стюарт Вагнер (2005). Создание прибыльного электронного бизнеса . Cengage Обучение. п. 330. ИСБН 1111796092 .
- ^ Питер Нортон; Скотт Х. Кларк (2002). Новинка Питера Нортона «Внутри ПК» . Издательство Самс. п. 54. ИСБН 0672322897 .
- ^ Л. Гопалакришнан; Г. Падманабхан; Судхат Шукла (2003). Ваш домашний компьютер: максимально эффективно используйте свой персональный компьютер . Тата МакГроу-Хилл Образование . п. 190. ИСБН 0070473544 .
- ^ «Лучшие бесплатные текстовые редакторы для Windows, Linux и Mac» . 28 апреля 2012 г.
В каждой операционной системе по умолчанию имеется базовый текстовый редактор, но большинство из нас устанавливают собственные расширенные текстовые редакторы, чтобы получить больше возможностей.
- ^ Лауден, Кеннет К.; Ламберт, Кеннет А. (26 января 2011 г.). Языки программирования: принципы и практика . Cengage Обучение. п. 5. ISBN 978-1-133-38749-7 .
- ^ «ПРЕОБРАЗОВАТЕЛЬ ПЕРФОНИРОВАННОЙ КАРТЫ В МАГНИТНУЮ ЛЕНТУ UNIVAC, 90 КОЛОНН» (PDF) . Система автоматизации данных UNIVAC II (PDF) . Remington-Rand Подразделение Univac корпорации Sperry Rand . 1957. с. 246 . Проверено 16 декабря 2022 г. ,
- ^ Алавудин, А.; Венкатешваран, Н. (18 августа 2008 г.). Компьютерно-интегрированное производство . PHI Learning Pvt. ООО с. 180. ИСБН 978-81-203-3345-1 .
- ^ Аптон, Эбен; Дантеманн, Джеффри; Робертс, Ральф; Мамтора, Тим; Эверард, Бен (22 августа 2016 г.). Изучение архитектуры компьютера с помощью Raspberry Pi . Джон Уайли и сыновья. стр. 232–234. ISBN 978-1-119-18394-5 .
- ^ «Изменить и загрузить» (PDF) . Справочное руководство SOS (PDF) . ИБМ . Ноябрь 1959 г. [Распространение № 1, изданное в 1959 г.]. п. 05.01.01 . Проверено 15 декабря 2022 г.
- ^ «Базовые спецификации открытой группы, выпуск 6, IEEE Std 1003.1, издание 2004 г.» . IEEE и Открытая группа. 2004 . Проверено 18 января 2010 г.
- ^ Л. Боулз, Кеннет; Холлан, Джеймс (1 июля 1978 г.). «Введение в систему UCSD PASCAL» . Методы исследования поведения . 10 (4): 531–534. дои : 10.3758/BF03205341 .
- ^ «Знакомство со средой редактирования Emacs» . ИБМ . Архивировано из оригинала 6 июня 2014 г. Проверено 6 июня 2014 г.
- ^ «Multics Emacs: история, проектирование и реализация» .
Некоторые пользователи Multics приобрели эти терминалы…, используя их либо как «стеклянные телетайпы», либо посредством «локального редактирования».
- ^ Чарльз Кроули. «Структуры данных для текстовых последовательностей» .Раздел "Введение" .
- ^ «Текстовые редакторы для программистов — Инструменты программирования» .
Если вы откроете файл .doc в текстовом редакторе, вы заметите, что большая часть файла представляет собой коды форматирования. Однако текстовые редакторы не добавляют коды форматирования, что упрощает компиляцию кода.
- ^ «Руководство по хаотичной миграции Vim в Emacs Evil» . juanjoalvarez.net . 19 сентября 2014 г.
- ^ «Гиторий» . Архивировано из оригинала 28 мая 2015 года . Проверено 27 мая 2015 г.
- ^ "Идет поиск" . Руководство пользователя Блокнота++ . Проверено 21 декабря 2021 г.
- ^ Филипп Аксани. «Выбор лучшего шрифта для программирования» .2023.
Внешние ссылки
[ редактировать ]- Ортодоксальные редакторы как особый класс продвинутых редакторов , обсуждают Xedit и его клоны с упором на возможности свертывания и программируемость.