Сэм (текстовый редактор)
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
![]() Скриншот Сэма | |
Оригинальный автор(ы) | Роб Пайк |
---|---|
Разработчик(и) | Белл Лаборатории |
Первоначальный выпуск | начало 1980-х |
Написано в | С |
Операционная система | Юникс , План 9 , Win32 |
Доступно в | Английский |
Тип | Текстовый редактор |
Лицензия | 2021: С 2014: только GPL-2.0 2002: ЛПЛ-1.02 |
Веб-сайт | один |
Sam — многофайловый текстовый редактор, основанный на структурных регулярных выражениях . Первоначально он был разработан в начале 1980-х годов в Bell Labs Робом Пайком с помощью Кена Томпсона и других разработчиков Unix для оконного терминала Blit , работающего на Unix ; Позже он был портирован на другие системы. Сэм следует классической модульной эстетике Unix . Он внутренне прост, его мощь достигается за счет возможности компоновки небольшого командного языка и расширяемости за счет интеграции оболочки.
Дизайн и особенности
[ редактировать ]Sam спроектирован как две синхронные программы: интерпретатор команд и оконный интерфейс с растровыми изображениями, ориентированный на мышь. Набор команд интерпретатора смоделирован по образцу редактора UNIX и может использоваться для управления редактором из стандартного текстового терминала. Однако по умолчанию Sam предоставляет собственное графического пользовательского интерфейса окно (GUI) samterm , которое дополнительно позволяет выполнять операции «укажи и щелкни» через всплывающие контекстные меню. Эта двухпроцессная структура позволяла Сэму получать доступ к файлам в сетевых хост-системах посредством удаленного выполнения процесса доступа к файлам при локальном запуске оконного интерфейса, тем самым обходя задержки при медленных соединениях.
Samterm отображает окна для редактируемых файлов и постоянное командное окно, которое принимает ввод в виде команд Sam. Большинство распространенных операций редактирования выполняются быстро и естественно с помощью интерфейса «укажи и щелкни», который также работает внутри командного окна. Последний факт позволяет редактировать (и повторно отправлять) команды, как и любой другой текст, — функция, унаследованная от терминального интерфейса DMD 5620 .
Синтаксис команды
[ редактировать ]Синтаксис команды Сэма формально аналогичен синтаксису ed или ex , содержит (структурные) условные и циклические функции на основе регулярных выражений , а также адресацию области действия, даже разделяя некоторые синтаксисы ed для таких функций. Но в то время как команды Эда ориентированы на строки, команды Сэма ориентированы на выбор. Выделенные фрагменты представляют собой непрерывные строки текста (которые могут занимать несколько строк) и задаются либо с помощью мыши (путем перемещения ее по области текста), либо путем сопоставления с образцом . Команды Сэма рассматривают такие выборки как базовые — более или менее так, как другие инструменты Unix обрабатывают строки; таким образом, многострочные и подстрочные шаблоны обрабатываются Сэмом так же естественно, как целострочные шаблоны — ed , vi , AWK , Perl и т. д. Это реализуется с помощью модели, называемой структурными регулярными выражениями , которая может рекурсивно применять регулярные выражения. сопоставление выражений для получения других (под)выборок в рамках данной выборки. Таким образом, набор команд Сэма можно применять к подстрокам, которые идентифицируются с помощью произвольно сложного контекста.
Сэм расширяет свой базовый набор команд редактирования текста для обработки нескольких файлов, предоставляя аналогичные условные команды и команды цикла на основе шаблонов для указания имени файла. Любая последовательность команд редактирования текста может быть применена как единое целое к каждой такой спецификации.
Бесконечные волны
[ редактировать ]Сэм был одним из первых текстовых редакторов, поддерживающих «бесконечную» отмену, позволяющую отменить любое количество ошибок редактирования. Эта функция в сочетании со способностью Сэма легко редактировать собственные команды и, по сути, с ее небольшим ортогональным набором команд (содержащим всего 33 команды), представляет собой склонность программы к низкому порогу обучения по сравнению с другими более выразительными «мощными редакторами».
Индоссанты
[ редактировать ]Сэм — любимый текстовый редактор нескольких выдающихся программистов. Это был первый полноэкранный редактор, который понравился Кену Томпсону . [1] Сэм — текстовый редактор, используемый Бьярном Страуструпом . [2] Брайан Керниган , [3] [4] Дуглас Макилрой и Том Дафф . [ нужна ссылка ] Другие, такие как Деннис Ритчи , Роб Пайк и Расс Кокс, перешли на acme , редактор с тем же командным языком, что и sam, но с набором дополнительных функций, включая аккорды мыши и автоматическое размещение открытых файлов.
Последняя версия sam написана в рамках операционной системы Plan 9, но есть Microsoft Windows , macOS и X Window System. [5] доступные порты.
См. также
[ редактировать ]- acme (текстовый редактор) — другой популярный текстовый редактор Роба Пайка и преемник Сэма.
- ed (текстовый редактор) — оригинальный текстовый редактор Unix Кена Томпсона.
- План 9 от Bell Labs
- Список команд Unix
Примечания
[ редактировать ]- ↑ Интервью: Ответы Роба Пайка , опубликовано Роблимо в понедельник, 18 октября 2004 г., Slashdot
- ^ Жешутко, Ярослав (16 октября 2006 г.). «Стифф спрашивает, великие программисты отвечают» . Стиффлог (Интервью). Архивировано из оригинала 5 октября 2011 года . Проверено 1 ноября 2008 г.
- ^ Керниган, Брайан (июль 2000 г.). «Интервью с Брайаном Керниганом» (Интервью). Беседовал Михай Будиу . Проверено 1 ноября 2008 г.
- ^ Фридман, Лекс (19 июля 2020 г.). Настройка программирования Брайана Кернигана | Лекс Фридман . Ютуб. Событие происходит на 44 секунде. Архивировано из оригинала 12 декабря 2021 г. Проверено 3 октября 2020 г.
- ^ «Дэдпикси/Сэм» . Гитхаб . 17 мая 2022 г.
Ссылки
[ редактировать ]- Пайк, Роб (октябрь 1987 г.). «Текстовый редактор Сэм» . Программное обеспечение: практика и опыт . 17 (11): 813–845. дои : 10.1002/спе.4380171105 . S2CID 36076160 . Проверено 1 ноября 2008 г.
- Пайк, Роб. «Структурные регулярные выражения» . Проверено 1 ноября 2008 г.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - Пайк, Роб. «Учебное пособие по командному языку Sam» . Проверено 1 ноября 2008 г.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь )