редактор (программное обеспечение)
Оригинальный автор(ы) | Кен Томпсон |
---|---|
Разработчик(и) | AT&T Bell Laboratories |
Первоначальный выпуск | 1973 год, 50–51 год назад. |
Написано в | С |
Операционная система | Unix , Unix-подобные , Plan 9 |
Платформа | Кросс-платформенный |
Тип | Текстовый редактор |
Лицензия | План 9: МОЯ лицензия |
ed (произносится как отдельные буквы, / ˌ iː ˈ d iː / ) [1] — построчный редактор для Unix и Unix-подобных операционных систем. Это была одна из первых частей операционной системы Unix, разработанная в августе 1969 года. [2] Он остается частью стандартов POSIX и Open Group для операционных систем на базе Unix. [3] наряду с более сложным полноэкранным редактором vi .
История и влияние
[ редактировать ]Редактор ed-текста был одним из первых трёх ключевых элементов операционной системы Unix — ассемблера , редактора и оболочки — разработанных Кеном Томпсоном в августе 1969 года на PDP-7 в AT&T Bell Labs . [2] Многие функции ed взяты из текстового редактора qed , разработанного Томпсоном в альма-матер Калифорнийском университете в Беркли, . [4] Томпсон был хорошо знаком с qed и повторно реализовал его в системах CTSS и Multics . Версии qed Томпсона были известны как первые, реализовавшие регулярные выражения . Регулярные выражения также реализованы в ed, хотя их реализация значительно менее общая, чем в qed.
Деннис М. Ричи продюсировал то, что Дуг Макилрой позже назвал «окончательным» изданием: [5] и аспекты ed продолжали влиять на ex , который, в свою очередь, породил vi . Неинтерактивная команда grep в Unix была основана на обычном специальном использовании qed и более поздней версии ed, где команда g/re/p
выполняет глобальный . выражениям поиск по регулярным и выводит строки , содержащие совпадения Редактор потоков Unix, sed, реализовал многие функции сценариев qed , которые не поддерживались ed в Unix. [6] [ не удалось пройти проверку ] [7]
Функции
[ редактировать ]Особенности Эд включают в себя:
- доступен практически во всех системах Unix (и обязателен в системах, соответствующих Единой спецификации Unix ).
- поддержка регулярных выражений
- мощная автоматизация может быть достигнута путем подачи команд со стандартного ввода
(Пе)известный своей краткостью, ed, совместимый с телетайпными терминалами, такими как Teletype Model 33 , почти не дает визуальной обратной связи, [8] и был назван ( Питером Х. Салусом ) «самым враждебным к пользователю редактором из когда-либо созданных», даже по сравнению с современным (и общеизвестно сложным) TECO . [2] Например, сообщение, которое ed выдаст в случае ошибки и когда он хочет убедиться, что пользователь хочет выйти без сохранения, — это «?». Он не сообщает текущее имя файла или номер строки и даже не отображает результаты изменения текста, если это не требуется. Более старые версии (около 1981 г.) даже не запрашивали подтверждение, когда команда выхода была подана без сохранения изменений пользователем. [8] Такая краткость была уместна в ранних версиях Unix, когда консоли были телетайпами , модемы были медленными, а память была драгоценной. По мере совершенствования компьютерных технологий и ослабления этих ограничений редакторы с большей визуальной обратной связью стали нормой.
В текущей практике ed редко используется в интерактивном режиме, но находит применение в некоторых сценариях оболочки . В 1980-х годах для интерактивного использования ed был отнесен к редакторам sam , vi и Emacs . ed можно найти практически в каждой доступной версии Unix и Linux , и поэтому он полезен для людей, которым приходится работать с несколькими версиями Unix. В операционных системах на базе Unix некоторые утилиты, такие как SQL*Plus, запускаются в качестве редактора, если переменные среды EDITOR и VISUAL не определены. [9] Если что-то пойдет не так, Эд иногда оказывается единственным доступным редактором. Часто это единственный раз, когда он используется в интерактивном режиме.
Версия ed, предоставленная GNU, имеет несколько переключателей для улучшения обратной связи. С использованием ed -v -p:
предоставляет простую подсказку и позволяет получать более полезные сообщения обратной связи. [10] -p
переключатель определен в POSIX начиная с XPG2 (1987). [3]
Команды ed часто имитируются в других построчных редакторах. Например, EDLIN в ранних версиях MS-DOS и 32-битных версиях Windows NT имеет несколько схожий синтаксис, а текстовые редакторы во многих MUD ( , LPMud например и его потомках) используют синтаксис, подобный ed. Однако эти редакторы обычно более ограничены в функциях.
Пример
[ редактировать ]Вот пример стенограммы учебного занятия. Для наглядности команды и текст, набираемый пользователем, выделены обычным шрифтом , а вывод из ed выделен .
a
ed is the standard Unix text editor.
This is line number two.
.
2i
.
,l
ed is the standard Unix text editor.$
$
This is line number two.$
w text
63
3s/two/three/
,l
ed is the standard Unix text editor.$
$
This is line number three.$
w text
65
q
Конечным результатом является простой текстовый файл, содержащий следующий текст:
ed is the standard Unix text editor. This is line number three.
Начал с пустого файла, a
команда добавляет текст (все команды ed состоят из отдельных букв). Команда переводит ed в режим вставки , вставляя следующие за ним символы и завершается одной точкой в строке. Две строки, введенные до точки, попадают в файловый буфер. 2i
Команда также переходит в режим вставки и вставляет введенный текст (в нашем случае одну пустую строку) перед второй строкой. Все команды могут иметь префикс номера строки для работы с этой строкой.
В линии ,l
, строчная буква L обозначает команду списка. Перед командой стоит диапазон, в данном случае ,
что является ярлыком для 1,$
. Диапазон представляет собой два номера строк, разделенных запятой ( $
означает последнюю строку). В свою очередь, ed перечисляет все строки, от первой до последней. Эти строки заканчиваются знаками доллара, поэтому пробелы в конце строк хорошо видны.
Как только пустая строка вставляется в строку 2, появляется строка с надписью «Это строка номер два». теперь это фактически третья строка. Эта ошибка исправляется с помощью 3s/two/three/
, команда замены. 3
применит его к правильной строке; после команды идет заменяемый текст, а затем сама замена. Перечисление всех строк с ,l
линия теперь отображается правильно.
w text
записывает буфер в файл «текст», заставляя ed отвечать 65 — количеством символов, записанных в файл. q
завершит сеанс редактирования.
Культурные ссылки
[ редактировать ] Project На веб-сайте проекта GNU размещено множество шуток вокруг ed. Кроме того, в документации glibc указан код ошибки под названием ED
в его описании (errorstr) всего лишь один вопросительный знак, отмечающий, что «опытный пользователь поймет, что не так». [11]
См. также
[ редактировать ]- Edlin — стандартный построчный редактор MS-DOS, вдохновленный ed
- Сэм (текстовый редактор)
- Редактор был
- Список команд Unix
Ссылки
[ редактировать ]- ^ Computerphile (06.07.2018), Откуда взялся GREP - Computerphile , заархивировано из оригинала 11 декабря 2021 г. , получено 21 октября 2020 г.
- ^ Jump up to: а б с Салус, Питер Х. (2005). Демон, Гну и Пингвин . Гроклав . Архивировано из оригинала 5 мая 2010 г.
- ^ Jump up to: а б Единая спецификация UNIX , версия 4 от Open Group. – Справочник по оболочке и утилитам,
- ^ Д. М. Ричи и К. Л. Томпсон, «Текстовый редактор QED», MM-70-1373-3 (июнь 1970 г.), переиздано как «Справочное руководство по текстовому редактору QED», MHCC-004, Murray Hill Computing, Bell Laboratories (октябрь 1972 г.).
- ^ Макилрой, доктор медицины (1987). Читатель Research Unix: аннотированные выдержки из Руководства программиста, 1971–1986 (PDF) (Технический отчет). CSTR. Лаборатории Белла. 139.
- ^ Раймонд, Эрик (2003). «Искусство программирования для Unix» (PDF) . Архивировано (PDF) из оригинала 15 июня 2023 г. Проверено 14 июня 2023 г.
- ^
«О ранней истории и влиянии Unix» .
Спустя некоторое время на замену возникла потребность в другой специальной программе — gres: g/re/s. Ли МакМэхон взялся написать ее и вскоре предвидел, что семейству не будет конца: г/ре/д, г/ре/а и т. д. По мере развития его концепции она стала сед…
- ^ Jump up to: а б Дональд А. Норман (1981). «Правда о UNIX» (PDF) . Датаматизация . Архивировано из оригинала (PDF) 16 апреля 2014 г.
- ^ Администрирование SQL*Plus . Доступ 23.07.2016.
- ^ Linux по основным командам Руководство –
- ^ «Библиотека GNU C — коды ошибок» . www.gnu.org .
Внешние ссылки
[ редактировать ]- Единая спецификация UNIX , версия 4 от The Open Group : редактировать текст — Справочник по командной строке и утилитам,
- Страница руководства из Unix First Edition, описывающая ed .
- Unix версии 7 программиста Руководство : текстовый редактор –
- Руководство программиста Plan 9 , Том 1, прямой потомок оригинального издания. : текстовый редактор –
- Домашняя страница редакции GNU
- История UNIX до Беркли В разделе 3.1 описана история изд.