Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Примечания [ править ]

  1. ^ Интервью: Роб Пайк Реагирует , Опубликовано Роблимо в понедельник 18 октября 2004 г., Slashdot
  2. ^ Жешотко, Ярослав (2006-10-16). «Жестко спрашивает, отвечают великие программисты» . Stifflog (Интервью). Архивировано из оригинала на 5 октября 2011 года . Проверено 1 ноября 2008 .
  3. ^ Керниган, Brian (июль 2000). «Интервью с Брайаном Керниганом» (Интервью). Беседовал Будиу, Михай . Проверено 1 ноября 2008 .
  4. Фридман, Лекс (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