Эта статья поднимает множество проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалить эти сообщения-шаблоны ) ( Узнайте, как и когда удалить этот шаблон сообщения )
|
Скриншот Сэма | |
Оригинальный автор (ы) | Роб Пайк |
---|---|
Разработчики) | Bell Labs |
изначальный выпуск | начало 1980-х |
Написано в | C |
Операционная система | Unix , план 9 , Win32 |
Доступно в | английский |
Тип | Текстовый редактор |
Лицензия | Общественная лицензия Lucent |
Интернет сайт | sam |
Sam - это многофайловый текстовый редактор, основанный на структурных регулярных выражениях . Первоначально он был разработан в начале 1980 - х годов в Bell Labs по Rob Pike с помощью Кена Томпсона и других разработчиков Unix для Blit оконного терминала работает на Unix ; Позже он был перенесен на другие системы. Сэм следует классической модульной эстетике Unix . Он прост внутри, его мощь основана на возможности компоновки небольшого командного языка и расширяемости за счет интеграции с оболочкой.
Дизайн и особенности [ править ]
Сэм спроектирован как две синхронные программы: интерпретатор команд и ориентированный на мышь растровый оконный интерфейс. Набор команд интерпретатора смоделирован по образцу редактора UNIX ed и может использоваться для управления редактором из стандартного текстового терминала. Однако по умолчанию Sam представляет собственное окно графического интерфейса пользователя (GUI), samterm , которое дополнительно позволяет выполнять операции «укажи и щелкни» через всплывающие контекстные меню. Эта двухпроцессная структура позволяла Сэму получать доступ к файлам в сетевых хост-системах посредством удаленного выполнения процесса доступа к файлам при локальном запуске оконного интерфейса, тем самым обходя задержку при медленных соединениях.
Samterm представляет окна для редактируемых файлов и для постоянного командного окна, которое принимает ввод как команды sam. Наиболее распространенные операции редактирования быстро и естественно выполняются с помощью интерфейса «укажи и щелкни», который также работает в командном окне. Последний факт позволяет редактировать (и повторно отправлять) команды так же, как и любой другой текст, функция, унаследованная от терминального интерфейса DMD 5620 .
Синтаксис команды [ править ]
Командный синтаксис Сэма формально аналогичен синтаксису ed или ex , содержит (структурные) регулярные выражения, основанные на условных и циклических функциях, и адресацию области видимости, даже разделяя некоторые синтаксисы ed для таких функций. Но в то время как команды ed ориентированы на строки, команды sam ориентированы на выбор. Выбор являются смежными строками текста (которые могут занимать несколько строк), а также указаны либо с помощью мыши (по подметание его над областью текста) , либо с помощью сопоставления с образцом . Команды Сэма воспринимают такой выбор как базовый - примерно так же, как другие инструменты Unix обрабатывают строки; таким образом, многострочные и субстрочные шаблоны обрабатываются Сэмом так же естественно, как целые строчные шаблоны - ed , vi , AWK., Perl и т. Д. Это реализуется с помощью модели, называемой структурными регулярными выражениями , которая может рекурсивно применять сопоставление регулярных выражений для получения других (под) выборок в рамках данного выбора. Таким образом, набор команд sam может применяться к подстрокам, которые идентифицируются произвольно сложным контекстом.
Sam расширяет свой базовый набор команд редактирования текста на обработку нескольких файлов, предоставляя похожие условные и циклические команды на основе шаблонов для указания имени файла. Любая последовательность команд редактирования текста может применяться как единица к каждой такой спецификации.
Бесконечные отмены [ править ]
Сэм был одним из первых текстовых редакторов, который поддерживал «бесконечную» отмену для отмены любого количества ошибок редактирования. Эта функция в сочетании со способностью Сэма легко редактировать свои собственные команды и, по сути, его небольшим ортогональным набором команд (содержащим всего 33 команды), отражает склонность программы к низкому порогу обучения по сравнению с другими более выразительными «мощными редакторами».
Поддерживающие [ править ]
Сэм - любимый текстовый редактор нескольких выдающихся программистов. Это был первый полноэкранный редактор, который понравился Кену Томпсону . [1] Сэм - текстовый редактор, который использовали Бьярн Страуструп , [2] Брайан Керниган , [3] [4] Дуглас Макилрой и Том Дафф . [ необходима цитата ] Другие, такие как Деннис Ричи , Роб Пайк и Расс Кокс, перешли на acme , редактор с тем же языком команд, что и sam, но с набором дополнительных функций, включая аккорды мышью и автоматическое разбиение открытых файлов на плитки.
Последняя версия sam была написана как часть операционной системы Plan 9, но доступны порты Microsoft Windows , macOS и X Window System .
См. Также [ править ]
- acme (текстовый редактор) - другой популярный текстовый редактор Роба Пайка и преемник Сэма.
- ed (текстовый редактор) - оригинальный текстовый редактор Unix Кена Томпсона
- План 9 от Bell Labs
- Список команд Unix
Примечания [ править ]
- ^ Интервью: Роб Пайк Реагирует , Опубликовано Роблимо в понедельник 18 октября 2004 г., Slashdot
- ^ Жешотко, Ярослав (2006-10-16). «Жестко спрашивает, отвечают великие программисты» . Stifflog (Интервью). Архивировано из оригинала на 5 октября 2011 года . Проверено 1 ноября 2008 .
- ^ Керниган, Brian (июль 2000). «Интервью с Брайаном Керниганом» (Интервью). Беседовал Будиу, Михай . Проверено 1 ноября 2008 .
- ↑ Фридман, Лекс (19 июля 2020 г.). Настройка программирования Брайана Кернигана | Лекс Фридман . YouTube. Событие происходит через 44 секунды . Проверено 3 октября 2020 .
Ссылки [ править ]
- Пайк, Роб (октябрь 1987 г.). "Текстовый редактор Сэм" . Программное обеспечение - практика и опыт . 17 (11): 813–845. DOI : 10.1002 / spe.4380171105 . S2CID 36076160 . Проверено 1 ноября 2008 .
- Пайк, Роб. «Структурные регулярные выражения» . Проверено 1 ноября 2008 . Цитировать журнал требует
|journal=
( помощь ) - Пайк, Роб. "Учебник по командному языку sam" . Проверено 1 ноября 2008 . Цитировать журнал требует
|journal=
( помощь )
Внешние ссылки [ править ]
- ssam (1): потоковый интерфейс к sam
- Сэм Ресурсы
- sam (1): экранный редактор со структурными регулярными выражениями
- Версия Sam для Win32
- Другая версия Sam для Win32 (и другие утилиты Plan 9)
- Новая версия Sam для Win32 и других утилит plan9 на основе plan9port
- Новая версия Sam для Unix как часть Plan 9 из пользовательского пространства
- Другая версия sam для Unix , без каких-либо зависимостей Plan 9 от User Space и с поддержкой масштабируемых шрифтов
- Краткая справочная карта sam