GNU Emacs 27.2

Emacs — семейство многофункциональных расширяемых текстовых редакторов. 

Оригинальный EMACS был написан в 1976 году Ричардом Столлманом и Гаем Стилом как набор макросов для редактирования для редактора TECO. Функциональность Emacs можно разделить на три уровня: базовая, основной режим и дополнительные режимы. Сочетание этих трёх уровней позволяет выполнять огромное количество задач (в том числе и не связанных напрямую с редактированием текста) не выходя из редактора. 

Базовая функциональность включает в себя основные операции работы с текстом, как присутствующие в любом редакторе, так и уникальные для Ems. Сюда входят вставка и удаление текста, перемещение по тексту, открытие и сохранение файлов и т. п. Уникальным для Emacs является множество этих операций и доступность практически всех из них с клавиатуры. Так, например, по тексту можно перемещаться посимвольно, по словам, строкам, страницам, предложениям, абзацам, сбалансированным спискам (то есть по выражениям, заключённым в скобки), функциям.

Основной режим Emacs определяется типом редактируемого файла. Существуют режимы для различных языков программирования, языков разметки текста (HTML, TeX и т. п.), для просмотра каталогов, для чтения и отправления электронной почты и многие другие. Основной режим определяет способ подсветки синтаксиса, способ выравнивания кода для языков программирования, специальные команды для выполнения часто используемых операций и др. Основной режим может также переопределять базовые элементы текста. Так, при редактировании программ на C и подобных языках предложением считается одна команда программы. При этом в комментариях предложение имеет обычный текстовый смысл. 

Отмечается, что выпуск Emacs 27.2 включает только исправления ошибок и не привносит новых возможностей, за исключением изменения поведения опции 'resize-mini-frames'. При выставлении 'resize-mini-frames' в ненулевое значение, которое не является функцией, по умолчанию для изменения размера минифреймов теперь применяется новая функция 'fit-mini-frame-to-buffer', которая не пропускает лидирующие и завершающие пустые строки буфера. 


Основу идеологии составляют принципы «всё в одном», расширяемости, настраиваемости под пользователя и документированности.