Ответ

#  Редактор ACME
hugeping (ping,1) → All   –  12:17:21 2021-01-20

Я не буду писать руководство по этому редактору. Но мне хотелось в этой небольшой заметке обозначить главную идею редактора. Дело в том, что когда я начинал осваивать acme мне не хватало именно этого -- понимания центральной идеи, архитектуры. Что это вообще такое? Нечто, непохожее ни на один существующий редактор. Да как можно в нём работать?

А идея у acme оказалась простой и при этом мощной. Я в течении 2-х месяцев разрабатывал в нём игру с текстовым вводом, и это было удобно. Привык настолько, что забыл даже часть клавиатурных комбинаций emacs. :)

Итак, в чём идея acme? Идея acme состоит в том, чтобы дать прослойку между ОС и человеком в виде TUI. И это всё.

1) Acme - это просто столбцы, в которых могут создаваться "окна", отображающие текст. Просто текст, поток текста. Без цвета, стилей, номеров строк... Лишь текст.

2) Над окнами есть области, в которых тоже может быть текст, которые играют роль меню.

3) Меню и окнами можно управлять с помощью записи в специальные файлы. С помощью чтения, можно получать события и информацию о текущем содержимом окон и меню.

4) Вы можете "выполнять" команды системы прямо из текста и/или меню. Например, вызывать спеллчекер, форматирование кода, увеличение отступа -- всё это должно быть Unix командами, которые будут выполняться для всего текста или выделенной его части. Текст приходит через stdin и выходит через stdout. Текст может быть внедрён в редактируемый текст или отображаться в отдельном окне (например, ошибки компилятора). Скрипт может понимать, что он запущен из среды acme и управлять редактором через файловую систему!

5) Можно открывать и просматривать файлы/каталоги, переходить на нужные строки, делать поиск в тексте. Всё это делается "выполнением" текста. Есть базовая возможность делать обработку текста на языке, который похож на sed. (Встроенная команда Edit).

>> Читать далее