GNU Emacs - GNU Emacs

GNU Emacs
Emacs-logo.svg
GNU Emacs 26.2, работающий в GNOME 3
GNU Emacs 26.2 работает на GNOME 3
Оригинальный автор (ы)Ричард Столмен
Разработчики)Проект GNU
изначальный выпуск20 марта 1985 г.; 35 лет назад (1985-03-20)
Стабильный выпуск
27.1[1] / 10 августа 2020; 3 месяца назад (10 августа 2020)
Предварительный выпуск
27.0.91 / 19 апреля 2020; 7 месяцев назад (2020-04-19)
Репозиторий Отредактируйте это в Викиданных
Написано вEmacs Lisp, C[2]
Операционная системаUnix-подобный (GNU, Linux, macOS, BSD, Солярис ), Windows, MS-DOS[3]
ПлатформаКроссплатформенность
Доступно ванглийский
ТипТекстовый редактор
ЛицензияGPLv3 +
Интернет сайтwww.gnu.org/программного обеспечения/ emacs/

GNU Emacs это бесплатно программное обеспечение Текстовый редактор. Он был создан Проект GNU основатель Ричард Столмен. Как и другие сорта Emacs, GNU Emacs расширяется с помощью Тьюринг завершен язык программирования. GNU Emacs был назван «самым мощным текстовым редактором на сегодняшний день».[4] При надлежащей поддержке со стороны базовой системы GNU Emacs может отображать файлы с несколькими наборами символов и может одновременно отображать большинство человеческих языков по крайней мере с 1999 года.[5] На протяжении всей своей истории GNU Emacs был центральным компонентом GNU проект, и флагман бесплатно программное обеспечение движение.[6][7] GNU Emacs иногда сокращается как GNUMACS, особенно чтобы отличить его от других вариантов EMACS.[8] Слоган для GNU Emacs - это «расширяемый самодокументирующийся текстовый редактор».[9]

История

Ричард Столмен, основатель Проект GNU и автор GNU Emacs

В 1976 году Столлман написал первый Emacs («редактор MACroS»), а в 1984 году начал работу над GNU Emacs, чтобы создать бесплатно программное обеспечение альтернатива проприетарному Гослинг Emacs. GNU Emacs изначально был основан на Gosling Emacs, но Столлман заменил его Моклисп устный переводчик с истинным интерпретатором Лиспа потребовалось переписать почти весь его код. Это была первая программа, выпущенная зарождающимся проектом GNU. GNU Emacs написан на C и предоставляет Emacs Lisp, также реализованный на C в качестве языка расширения. Версия 13, первый публичный выпуск, была выпущена 20 марта 1985 года. Первой широко распространенной версией GNU Emacs была версия 15.34, выпущенная позже, в 1985 году. Ранние версии GNU Emacs были пронумерованы как «1.xx» с начальным цифра, обозначающая версию ядра C. «1» была удалена после версии 1.12, так как считалось, что старший номер никогда не изменится, и, таким образом, основная версия перешла с «1» на «13». Был добавлен новый третий номер версии для обозначения изменений, внесенных на сайтах пользователей.[10] В текущей схеме нумерации число с двумя компонентами обозначает версию выпуска, а версии для разработки - три компонента.[11]

GNU Emacs позже был перенесен на Unix Операционная система. Он предлагал больше возможностей, чем Gosling Emacs, в частности, полнофункциональный Lisp в качестве языка расширения, и вскоре заменил Gosling Emacs в качестве языка расширения. де-факто Редактор Unix Emacs. Маркус Хесс использовал брешь в безопасности в подсистеме электронной почты GNU Emacs во время взлома 1986 года, в результате чего он получил суперпользователь доступ к компьютерам Unix.[12]

Хотя пользователи обычно отправляли патчи и код Elisp в net.emacs группа новостей, участие в разработке GNU Emacs было относительно ограничено до 1999 г. и использовалось в качестве примера стиля разработки «Собор» в Собор и базар. С тех пор проект принял публичный список рассылки по разработке и анонимный CVS доступ. До 2008 года разработка велась в единой магистрали CVS, а сегодня используется Git[13] DVCS.

Ричард Столмен оставался главным сопровождающим GNU Emacs, но время от времени он отступал от этой роли. Стефан Монье и Чонг Идонг осуществляют техническое обслуживание с 2008 года.[14] 21 сентября 2015 года Монье объявил, что уходит с должности сопровождающего в связи с замораживанием функций Emacs 25.[15] Джон Вигли, давний участник, был объявлен новым сопровождающим 5 ноября 2015 года.[16]

Лицензирование

Условия Стандартная общественная лицензия GNU (GPL) заявляют, что исходный код Emacs, включая компоненты C и Emacs Lisp, свободно доступен для изучения, модификации и распространения.

Более старые версии документации GNU Emacs появлялись под специальной лицензией, которая требовала включения определенного текста в любую измененную копию. Например, в руководстве пользователя GNU Emacs содержатся инструкции по получению GNU Emacs и эссе Ричарда Столлмана. Манифест GNU. Руководства XEmacs, унаследованные от более старых руководств GNU Emacs, когда произошло форк, имеют ту же лицензию. В более новых версиях документации используется Лицензия свободной документации GNU с «неизменными разделами», которые требуют включения тех же документов и которые в руководствах объявляются как Руководства GNU.

Для GNU Emacs, как и для многих других пакетов GNU, остается политикой принимать значительные изменения кода, только если Авторские права владелец выполняет соответствующий отказ от ответственности или уступает свои авторские права Фонд свободного программного обеспечения. Исправления ошибок и незначительные изменения кода менее 10 строк исключаются. Эта политика действует для того, чтобы FSF мог защищать программное обеспечение в суде, если его авторское лево лицензия нарушена.

В 2011 году было замечено, что GNU Emacs случайно выпускал некоторые двоичные файлы без соответствующего исходного кода в течение двух лет, что противоречило предполагаемому духу GPL.[17][18][19] Ричард Столмен описал этот инцидент как "очень серьезная ошибка",[20] что было оперативно исправлено. FSF не подавала в суд на перераспределителей, которые неосознанно нарушен GPL путем распространения этих двоичных файлов.

Использование GNU Emacs

Редактирование нескольких Dired буферы в GNU Emacs
Редактирование C исходный код в GNU Emacs
Редактирование и компиляция C ++ код из GNU Emacs

Команды

В обычном режиме редактирования GNU Emacs ведет себя как другие текстовые редакторы и позволяет пользователю вставлять символы с помощью соответствующих клавиш и перемещать точку редактирования с помощью клавиш со стрелками. Клавиша выхода последовательности или нажав ключ управления и / или мета-ключ, клавиша alt или же супер ключи в сочетании с обычным ключом производит измененные нажатия клавиш которые вызывают функции из среды Emacs Lisp. Такие команды, как сохранить буфер и сохранить-буферы-убить-emacs объединить несколько измененных нажатий клавиш.

Некоторые команды GNU Emacs работают путем вызова внешней программы, такой как ispell для проверки орфографии или Коллекция компиляторов GNU (gcc) для компиляции программы, анализа вывода программы и отображения результата в GNU Emacs. Emacs также поддерживает «подчиненные процессы» - долгоживущие процессы, которые взаимодействуют с буфером Emacs. Это используется для реализации оболочка, работает Оболочка Unix как подчиненный процесс, а также цикл чтения – оценки – печати (REPL) режимы для разных языков программирования. Поддержка внешних процессов в Emacs делает его привлекательной средой для интерактивного программирования в духе Интерлисп или же Болтовня.[21]

Пользователи, которые предпочитают Доступ общих пользователей IBM -стилевые ключи можно использовать cua-режим, пакет, который изначально был надстройкой стороннего производителя, но был включен в GNU Emacs с версии 22.

Минибуфер

Emacs использует «минибуфер», обычно самую нижнюю строку, для представления статуса и запроса информации - функции, которые обычно выполняются диалоговые окна в большинстве графических интерфейсов. Минибуфер содержит такую ​​информацию, как текст для поиска или имя файла, который нужно прочитать или сохранить. Если применимо, завершение командной строки доступен с помощью клавиш табуляции и пробела.

Управление файлами и отображение

Emacs сохраняет текст в структуры данных известный как буферы. Буферы могут отображаться или не отображаться на экране, и все функции буфера доступны как для Emacs Lisp программы и пользовательского интерфейса.[22] Пользователь может создавать новые буферы и отклонять ненужные, при этом одновременно может существовать множество буферов. Не существует верхнего предела количества буферов, допускаемых Emacs, кроме ограничений аппаратной памяти. Опытные пользователи могут накопить сотни открытых буферов различных типов, связанных с их текущей работой.[23] Emacs можно настроить так, чтобы он сохранял список открытых буферов при выходе и повторно открывал этот список при перезапуске.[24]

Некоторые буферы содержат текст, загруженный из текстовые файлы, который пользователь может редактировать и сохранять обратно в постоянное хранилище. Эти буферы называются «посещающими» файлами. Буферы также служат для отображения других данных, таких как вывод команд Emacs, dired списки каталогов, строки документации, отображаемые библиотекой "справки" и сообщения с уведомлениями, которые в других редакторах будут отображаться в диалоговое окно. Некоторые из этих уведомлений кратковременно отображаются в минибуфере, а GNU Emacs предоставляет *Сообщения* буфер, в котором хранится история самых последних уведомлений этого типа. Когда минибуфер используется для вывода из Emacs, он называется «эхо-областью».[25] Более длинные уведомления отображаются в собственных буферах. Максимальная длина сообщений, которые будут отображаться в минибуфере, конечно, настраивается.

Буферы также могут служить областями ввода и вывода для внешнего процесса, такого как ракушка или же REPL. Буферы, которые Emacs создает сам по себе, обычно называются звездочки на каждом конце, чтобы отличать от пользовательских буферов. В этом типе буфера отображается сам список открытых буферов.

Большинство ключевых последовательностей Emacs остаются работоспособными в любом буфере. Например, стандартные Ctrl-s я ищу Функция может использоваться для поиска имен файлов в dired буферах, а список файлов может быть сохранен в текстовый файл, как любой другой буфер. заданные буферы можно переключить в режим с возможностью записи, в котором имена файлов и атрибуты можно редактировать в текстовом виде; при сохранении буфера изменения записываются в файловую систему. Это позволяет переименовывать несколько файлов с помощью функций поиска и замены Emacs. Когда это установлено, Emacs отображает файлы изображений в буферах. Emacs безопасен для двоичного кода и 8-битный чистый.[26]

Emacs может разделить область редактирования на отдельные неперекрывающиеся секции, называемые «окнами», функция, которая была доступна с 1975 года, предшествовавшей графическому пользовательскому интерфейсу, широко используемому. В терминологии Emacs "окна" похожи на то, что в других системах называют "кадры " или же "панели "- прямоугольная часть экрана программы, которую можно обновлять и с которой можно взаимодействовать независимо. Каждое окно Emacs имеет статус бар называется "строкой режима", отображаемой по умолчанию в нижнем краю окна. Окна Emacs доступны как в текстовом, так и в графическом режимах и позволяют одновременно отображать более одного буфера или несколько частей буфера. Общие приложения должны отображать dired буфер вместе с содержимым файлов в текущем каталоге (есть специальные режимы, чтобы файловый буфер следовал за файлом, выделенным dired), чтобы отобразить исходный код программы в одном окне, в то время как другое отображает ракушка буфер с результатами компиляции программы, для запуска отладчика вместе с буфером оболочки, запускающего программу, для работы с кодом при отображении страница руководства или другая документация (возможно, загруженная через Всемирная паутина используя один из встроенных в Emacs веб-браузеров) или просто отображать сразу несколько файлов для редактирования, например, заголовок вместе с файлом его реализации для языков на основе C. Кроме того, есть режим следования, второстепенный режим, который объединяет окна для отображения неперекрывающихся частей буфера. С помощью режим следования, один файл может отображаться в нескольких окнах бок о бок, которые обновляются соответствующим образом при прокрутке. Вдобавок Emacs поддерживает «сужение» буфера для отображения только части файла, при этом функции навигации по верхнему / нижнему краю и вычисления размера буфера отражают только выбранный диапазон.

Окна Emacs выложенный плиткой и не могут появляться «выше» или «ниже» своих товарищей. Emacs может запускать несколько «фреймов», которые отображаются как отдельные окна в графической среде. На текстовом терминале несколько фреймов отображаются стопкой, заполняя весь терминал, и их можно переключать с помощью стандартных команд Emacs.[27]

Основные режимы

GNU Emacs может отображать или редактировать различные типы текста и адаптирует его поведение, вводя добавить режимы называется «основные режимы». Существуют основные режимы для разных целей, включая редактирование обычных текстовых файлов, исходный код из многих разметка и языки программирования, а также отображение веб-страница, списки каталогов и другая системная информация. Каждый основной режим включает в себя программу Emacs Lisp, которая расширяет редактор, чтобы работать с ним более удобно для указанного типа текста. Основные режимы обычно предоставляют некоторые или все из следующих общих функций:

  • Подсветка синтаксиса («блокировка шрифта»): комбинации шрифтов и цветов, называемые «начертаниями».[28] которые различают элементы документа, такие как ключевые слова и Комментарии.
  • Автоматический отступ для сохранения единообразного форматирования в файле.
  • Автоматическая вставка элементов, требуемых структурой документа, таких как пробелы, новые строки и круглые скобки.
  • Специальные команды редактирования, такие как команды для перехода к началу или концу функции при редактировании файла программирования или команды для проверки документов или вставки закрывающих тегов при работе с такими языками разметки, как XML.

Второстепенные режимы

Использование «второстепенных режимов» дает возможность дальнейшей настройки. Буфер редактирования GNU Emacs может использовать только один основной режим одновременно, но несколько второстепенных режимов могут работать одновременно. Они могут работать непосредственно с документами, так как основной режим языка программирования C определяет отдельный второстепенный режим для каждого из его популярных стили отступа, или они могут изменить среду редактирования. Примеры последнего включают режим, который добавляет возможность отмены изменений в конфигурации окна, и режим, который выполняет проверку синтаксиса на лету. Существует также второстепенный режим, который позволяет использовать несколько основных режимов в одном файле для удобства при редактировании документа, в который встроено несколько языков программирования.

"Пакетный режим"

GNU Emacs поддерживает возможность использовать его в качестве интерпретатора для Emacs Lisp язык без отображения пользовательского интерфейса текстового редактора. В пакетном режиме конфигурация пользователя не загружается и терминал прерывать символы C-c и C-z будут иметь свой обычный эффект выхода из программы или приостановки выполнения вместо вызова привязки клавиш Emacs. GNU Emacs имеет параметры командной строки чтобы указать либо файл для загрузки и выполнения, либо функция Emacs Lisp может быть передана из командной строки. Emacs запустится, выполнит переданный файл или функцию, распечатает результаты и выйдет.[29] В Shebang линия #! / usr / bin / emacs --script позволяет создавать автономные сценарии в Emacs Lisp.[30]Пакетный режим - это не режим Emacs как таковой, но описывает альтернативный режим выполнения программы Emacs.

Руководства

Руководство по GNU Emacs (обложка - Этьен Суваса; обложка - Мэтт Ли)

Помимо встроенной документации, GNU Emacs имеет необычно длинный и подробный руководство.[нужна цитата ] Электронная копия Руководство по GNU Emacs, написанный Ричардом Столлманом, поставляется вместе с GNU Emacs и может быть просмотрен с помощью встроенного Информация браузер. Два дополнительных руководства, Справочное руководство Emacs Lisp Биллом Льюисом, Ричардом Столлманом и Дэном Лалиберте и Введение в программирование в Emacs Lisp к Роберт Часселл, включены. Все три руководства также опубликованы в виде книг Фонд свободного программного обеспечения. Руководство XEmacs похоже на Руководство по GNU Emacs, из которого он разветвляется одновременно с разветвлением программного обеспечения XEmacs из GNU Emacs.

Интернационализация

GNU Emacs поддерживает множество алфавитов, скриптов, систем письма и культурных соглашений и предоставляет проверка орфографии для многих языков, вызывая внешние программы, такие как ispell. В версии 24 добавлена ​​поддержка двунаправленного текста и письма слева направо и справа налево. направление письма для таких языков, как арабский, персидский и иврит.

Много кодировка символов системы, в том числе UTF-8, поддерживаются. GNU Emacs использует UTF-8 для своей кодировки, начиная с GNU 23, в то время как предыдущие версии использовали свою собственную кодировку внутри и выполняли преобразование при загрузке и сохранении. Внутренняя кодировка, используемая XEmacs, аналогична кодировке GNU Emacs, но отличается в деталях.

Пользовательский интерфейс GNU Emacs был создан на английском языке и, за исключением учебника для начинающих, не был переведен ни на один другой язык.

Подсистема под названием Emacspeak позволяет слабовидящим и слепым пользователям управлять редактором с помощью звуковой обратной связи.

Расширяемость

GNU Emacs с AUCTeX, набор инструментов для редактирования TeX и Латекс документы

Поведение GNU Emacs может быть изменено и расширено почти без ограничений путем включения программ Emacs Lisp, которые определяют новые команды, новые режимы буфера, новые раскладки клавиатуры, добавляют параметры командной строки,[31] и так далее. Многие расширения, обеспечивающие функциональность, ориентированную на пользователя, определяют основной режим (либо для нового типа файла, либо для создания пользовательского интерфейса без редактирования текста); другие определяют только команды или второстепенные режимы или предоставляют функции, улучшающие другое расширение.

Многие расширения включены в установку GNU Emacs; другие загружались как отдельные файлы ( Usenet группа новостей gnu.emacs.sources был традиционным средством распространения), но начиная с версии 24 были разработаны управляемые пакеты и сайты загрузки пакетов со встроенным менеджером пакетов (сам по себе расширение) для загрузки, установки и поддержания их в рабочем состоянии на свидание. Список доступных пакетов отображается в буфере Emacs, установленном на пакетный режим основной режим.

Известные примеры включают:

Спектакль

GNU Emacs часто работал заметно медленнее, чем конкурирующие текстовые редакторы в системах, в которых он был впервые реализован, потому что загрузка и устный перевод кода, основанного на Lisp, приводит к снижению производительности. Современные компьютеры достаточно мощны, чтобы запускать GNU Emacs без замедления, но версии до 19.29 (выпущенные в 1995 году) не могли редактировать файлы размером более 8 МБ. Максимальный размер файла увеличивался в последующих версиях, и 32 бит версии после GNU Emacs 23.2 могут редактировать файлы размером до 512 МБ. Emacs, скомпилированный на 64-битной машине, может обрабатывать гораздо большие буферы.[35]

Платформы

GNU Emacs - один из самыхпортирован нетривиальные компьютерные программы и работает на самых разных операционные системы, включая ДОС, Windows[36][37][38] и OpenVMS. Поддержка некоторых «устаревших платформ была удалена в Emacs 23.1», таких как VMS и большинство коммерческий Unix варианты.[3] Это доступно для большинства Unix-подобный операционные системы, такие как Linux, различные BSD, Солярис, AIX, HP-UX и macOS,[39][40] и часто включается в их системные установочные пакеты. Родные порты GNU Emacs существуют для Android[41] и Nokia Maemo.[42]

GNU Emacs работает как на текстовые терминалы И в графический интерфейс пользователя (GUI) среды. В Unix-подобных операционных системах GNU Emacs может использовать X Window System для создания своего графического интерфейса либо напрямую, используя Виджеты Афины или с помощью «набора инструментов для виджетов», например Мотив, LessTif, или же GTK +. GNU Emacs также может использовать графические системы, родные для macOS и Windows, для обеспечения строки меню, панели инструментов, полосы прокрутки и контекстные меню более точно соответствовать каждой платформе смотреть и чувствовать.

Вилки

XEmacs

XEmacs 21.5 на GNU /Linux

Lucid Emacs, основанный на ранней версии GNU Emacs 19, был разработан в 1991 г. Джейми Завински и другие в Lucid Inc. Одна из самых известных вилок в бесплатно программное обеспечение Разработка произошла, когда кодовые базы двух версий Emacs разошлись, и отдельные группы разработчиков прекратили попытки объединить их обратно в единую программу.[43] После того, как Lucid объявил о банкротстве, Lucid Emacs был переименован. XEmacs и остается второй по популярности разновидностью Emacs после GNU Emacs.[нужна цитата ] Разработка XEmacs замедлилась: в январе 2009 года была выпущена самая последняя стабильная версия 21.4.22, в то время как GNU Emacs реализовал многие функции, ранее предназначенные только для XEmacs. Это привело к тому, что некоторые пользователи объявили о смерти XEmacs.[44]

Другие форки GNU Emacs

Другие вилки, менее известные, чем XEmacs, включают:

  • луг - японская версия для Microsoft Windows[45]
  • SXEmacs - форк XEmacs Стива Янгса[46]
  • Аквамаки - версия, ориентированная на интеграцию с пользовательским интерфейсом Apple Macintosh
  • Remacs - перенос GNU Emacs на Ржавчина язык программирования.[47]

История выпуска

Изменения в каждом выпуске Emacs перечислены в файле NEWS, распространяемом с Emacs.[48] Изменения, вызванные понижение к предыдущему выпуску перечислены в файле "Antinews", часто с некоторыми язвительными комментариями о том, почему это может быть желательно.[49]

История версий GNU Emacs
ВерсияДата выходаСущественные изменения[50]
27.110 августа 2020 г.Встроенная поддержка целых чисел произвольного размера. Формирование текста с помощью HarfBuzz. Встроенная поддержка синтаксического анализа JSON. Лучшая поддержка рисования Каира. Вместо unexec используется переносимый дамп. Поддержка соглашений XDG для файлов инициализации. Дополнительный файл инициализации ранней инициализации. По умолчанию используется лексическая привязка. Встроенная поддержка панели вкладок и строки вкладок. Поддержка изменения размера и поворота изображений без ImageMagick.
26.328 августа 2019 г.,Новый ключ GPG для проверки подписи пакетов GNU ELPA.
26.212 апреля 2019 г.,Модули Emacs теперь могут быть построены вне исходного дерева Emacs. Соответствие Unicode версии 11.0.
26.128 мая 2018 г.Ограниченная форма параллелизма с потоками Lisp. Поддержка необязательного отображения номеров строк в буфере. Emacs теперь использует двойную буферизацию для уменьшения мерцания в системе X Window. Flymake был полностью переработан. У TRAMP есть новый способ подключения к Google Диску. Новый однострочный режим горизонтальной прокрутки. Предоставляется файл пользовательского модуля systemd. Поддержка 24-битных цветов на текстовых терминалах.[51]
25.117 сентября 2016 г.Поддержка загрузки разделяемых / динамических библиотек (модулей). Проверка сертификатов TLS / SSL. Новый второстепенный режим 'electric-quote-mode' для использования изогнутых котировок. Поддержка складывания символов в isearch.el. Поддержка встраивания собственных виджетов в буферы Emacs. Новые и улучшенные возможности для вставки символов Юникода.[52]
24.510 апреля 2015 г.В основном выпуск с исправлением ошибок.[53][54]
24.420 октября 2014 г.Поддержка ACL (списков управления доступом) и цифровых подписей пакетов Emacs Lisp. Улучшена поддержка полноэкранного режима и нескольких мониторов. Поддержка сохранения и восстановления состояния фреймов и окон. Улучшена поддержка меню в текстовых терминалах. Другой встроенный веб-браузер (M-x eww). Новый режим прямоугольной метки (C-x SPC). Поддержка файловых уведомлений.[55]
24.310 марта 2013 г.Обобщенные переменные теперь находятся в ядре Emacs Lisp, обновлении библиотеки эмуляции Common Lisp и новом основном режиме для Python.[56]
24.227 августа 2012 г.Выпуск исправления[57]
24.110 июня 2012 г.Emacs Lisp Package Archive (ELPA), поддержка собственных цветовых тем, необязательный GTK + 3, поддержка двунаправленного ввода, поддержка лексической области видимости в emacs lisp[58]
23.429 января 2012 г.Устраняет брешь в безопасности.[59]
23.310 марта 2011 г.Улучшенная функциональность для использования Emacs с системами контроля версий.
23.28 мая 2010 г.Новые инструменты для использования Emacs в качестве IDE, включая навигацию по проекту и автоматическое создание Makefile. Новый основной режим редактирования исходного кода JavaScript. В графическом интерфейсе курсор скрыт, пока пользователь вводит текст.
23.129 июля 2009 г.Поддержка сглаженных шрифтов на Икс через Xft,[60] лучше Unicode поддержка, режим просмотра документов и новые пакеты для просмотра PDF и PostScript файлы, подключение к процессам через D-автобус (dbus), подключение к GNU Privacy Guard (EasyPG), режим nXML для редактирования XML документы, режим Ruby для редактирования Рубин программы и многое другое. Использование Углерод Библиотеки GUI на Mac OS X был заменен использованием более современных Какао Библиотеки GUI.
22.35 сентября 2008 г.Поддержка набора инструментов GTK +, расширенная поддержка мыши, новая система макросов клавиатуры, улучшенная поддержка Unicode и операции перетаскивания в X. Множество новых режимов и пакетов, включая графический пользовательский интерфейс для GDB, режим Python, математический инструмент Calc и система удаленного редактирования файлов Tramp («Прозрачный удаленный (файловый) доступ, множественный протокол»).[61]
22.226 марта 2008 г.Новая поддержка для Bazaar, Mercurial, Monotone и Git управление версиями системы. Новые основные режимы редактирования файлов стилей CSS, Vera, Verilog и BibTeX. Улучшена поддержка прокрутки в режиме изображения.
22.12 июня 2007 г.Поддержка графического инструментария GTK +, поддержка перетаскивания на X, поддержка Mac OS X Carbon UI, включая версию 4.67d в организационном режиме[62]
21.120 октября 2001 г.Поддержка отображения цветов и некоторых других атрибутов на терминалах, встроенная горизонтальная прокрутка, поддержка звука, поддержка колесика мыши, улучшенная компоновка строки меню, поддержка изображений, панели инструментов и всплывающих подсказок, поддержка Unicode
20.117 сентября 1997 г.Многоязычная поддержка
19.3422 августа 1996 г.выпуск с исправлением ошибок без видимых пользователем изменений[63]
19.3125 мая 1996 г.[64]Emacs открывается X11 кадров по умолчанию, полосы прокрутки включены Windows 95 и NT, подпроцессы на Windows 95, восстановление-сессия для восстановления нескольких файлов после сбоя, некоторые [[doctor.el]] функции удалены в соответствии с требованиями США Закон о порядочности в общении[63]
19.3024 ноября 1995 г.Поддержка нескольких кадров в MS Windows, строка меню доступна на текстовых терминалах, pc-select пакет для эмуляции общих сочетаний клавиш Windows и Macintosh.[63]
19.2919 июня 1995 г.[65]
19.281 ноября 1994 г.Первый официальный релиз v19. Поддержка нескольких фреймов с использованием X Windowing System; VC, новый интерфейс для систем контроля версий, режим блокировки шрифтов, режим hexl для шестнадцатеричный редактирование.
19.722 мая 1993 г.
18.5931 октября 1992 г.
18.5323 февраля 1989 г.
18.5217 августа 1988 г.spook.el библиотека для добавления некоторых "отвлекающих АНБ "ключевые слова (UNCPCJ Emergency management JITEM PEM bullion MSCJ Airplane SLIP rogue Gatt Ammonium nitrate Trafficking Embassy Emergency TELINT) к каждому отправляемому вами сообщению.[66]
18.242 октября 1986 г.Серверный режим,[67] М-х разобрать, Emacs может открывать TCP-соединения, emacs -nw открыть Emacs в консольном режиме на xterms.
17.3620 декабря 1985 г.Номера версий файлов резервных копий
16.5615 июля 1985 г.Первый выпуск Emacs 16. Emacs-lisp-mode отличается от lisp-mode,[68] удалить весь код из Гослинг Emacs из-за проблем с авторским правом[69]
15.1011 апреля 1985 г.
13.8?20 марта 1985 г.Первый выпуск. Однако лента VAXSIG VAX85b DECUS имеет версию 13.8 с датой файлов от 19 июня 1985 года с файлами RCS от 31 марта 1985 года. Это сильно поврежденная копия. Версия 13.9 упоминается в файле новостей,[70] поэтому 13.8, возможно, был первым выпуском, так как других названных выпусков 13.x не существует.

Рекомендации

  1. ^ "Выпущен Emacs 27.1"; строка имени автора: Николас Петтон; дата публикации: 11 августа 2020 г .; получено: 11 августа 2020.
  2. ^ "GNU Emacs", Резюме анализа, Open Hub
  3. ^ а б "Список машин Emacs".
  4. ^ ""Изучение GNU Emacs, третье издание ": Руководство по самому расширяемому настраиваемому редактору в мире".
  5. ^ "Alphabet Soup: интернационализация Linux, часть 1 Linux Journal, март 1999". Благодаря наличию шрифтов и, при необходимости, интернационализированных эмуляторов терминала, Emacs может одновременно обрабатывать большинство языков мира.
  6. ^ Фуско, Джон (2007-03-06). Набор инструментов программиста Linux. ISBN  9780132703048.
  7. ^ Кэмерон, Дебра; Эллиотт, Джеймс; Лой, Марк; Раймонд, Эрик; Розенблатт, Билл (2005). Изучение GNU Emacs. ISBN  9780596006488.
  8. ^ "ГНУМАКС".
  9. ^ "Debian - подробная информация о пакете Emacs в wheezy".
  10. ^ «НОВОСТИ.1-17». Появилась новая схема нумерации версий. То, что раньше было первым номером версии, а именно 1, было отброшено, поскольку мне не кажется, что мне нужны три уровня номера версии. Однако был добавлен новый третий номер версии, чтобы отразить изменения по сайтам пользователей. Это число всегда будет нулевым в Emacs, когда я его распространяю; он будет увеличиваться каждый раз, когда Emacs создается на другом сайте.
  11. ^ "Часто задаваемые вопросы о GNU Emacs". Номер версии с двумя компонентами (например, «22 .1») указывает на выпущенную версию; три компонента указывают на версию для разработки (например, «23 .0.50» - это то, что в конечном итоге станет «23 .1»).
  12. ^ Столл, Клиффорд (1988). «Преследование коварного хакера». Коммуникации ACM. 31 (5): 484–497. Дои:10.1145/42411.42412.
  13. ^ "Re: GNU EMACS". GNU. Получено 2014-11-16.]
  14. ^ "Re: Ищем нового сопровождающего Emacs или команду". Список рассылки gnu.org. Получено 2008-02-23.; смотрите также «Столмен о передаче GNU Emacs, его будущем и важности номенклатуры»
  15. ^ "Замораживание функции". lists.gnu.org.
  16. ^ "Emacs получает нового сопровождающего, когда Ричард Столлман завершает работу".
  17. ^ Брокмайер, Джо (29 июля 2011 г.). «Что скажешь? GNU Emacs нарушает GPL». Сетевой мир. Получено 2016-01-19.
  18. ^ Лицензия отозвана: применение раздела 4 GPL и уроков Best Buy к Android от Google В архиве 2016-01-27 в Wayback Machine Эдвард Дж. Нотон (8 августа 2011 г.)
  19. ^ [1] на slashdot.org (2011)
  20. ^ Re: Скомпилированные файлы без исходников ???? на lists.gnu.org Ричард Столлман (28 июля 2011 г.)
  21. ^ Хальме, Хейкки; Хейнянен, Юха (1988). «GNU Emacs как динамически расширяемая среда программирования». Программное обеспечение: практика и опыт. 18 (10): 999–1009. Дои:10.1002 / spe.4380181006.
  22. ^ Спинеллис, Диомидис; Гусиос, Георгиос (15 января 2009 г.). Красивая архитектура: ведущие мыслители раскрывают скрытую красоту в дизайне программного обеспечения. ISBN  9780596554392.
  23. ^ Heiberger, Ричард М .; Голландия, Берт (23 декабря 2015 г.). Статистический анализ и отображение данных: промежуточный курс с примерами на R. ISBN  9781493921225.
  24. ^ "Сохранение сеансов Emacs".
  25. ^ «Эхо-зона».
  26. ^ "Введение в GNU Emacs".
  27. ^ "Фреймы - Руководство по GNU Emacs". Однако на текстовых терминалах по-прежнему можно создавать несколько «рамок»; такие кадры отображаются по одному, заполняя весь экран терминала
  28. ^ Кэмерон, Дебра; Розенблатт, Билл; Раймонд, Эрик С. (1996). Изучение GNU Emacs. В серии в двух словах (2-е изд.). O'Reilly Media, Inc. стр. 533. ISBN  978-1-56592-152-8. Получено 2010-11-02. Лицо - это сочетание шрифта и цвета.
  29. ^ «Начальные параметры». В пакетном режиме Emacs не отображает редактируемый текст, и стандартные символы прерывания терминала, такие как C-z и C-c, имеют свой обычный эффект. Функции Emacs, которые обычно печатают сообщение в эхо-области, вместо этого будут печатать либо в стандартный поток вывода (stdout), либо в стандартный поток ошибок (stderr). (Если быть точным, такие функции, как prin1, princ и print, выводят на стандартный вывод, а сообщения и сообщения об ошибках выводят на стандартный вывод.) Функции, которые обычно считывают ввод с клавиатуры из минибуфера, вместо этого берут свой ввод из стандартного потока ввода терминала (stdin).
  30. ^ "Пакетный режим".
  31. ^ «Аргументы командной строки».
  32. ^ а б Столмен, Ричард (2007-06-03). "Выпущен Emacs 22.1". info-gnu-emacs (Список рассылки). Получено 2011-07-31.
  33. ^ Фэн, Крис (27 ноября 2017 г.). "exwm: Emacs X Window Manager" - через GitHub.
  34. ^ «Вавилон: Введение».
  35. ^ «6.1. Есть ли у Emacs проблемы с файлами размером более 8 мегабайт?».
  36. ^ Б. Рампрасад (24 июня 2005 г.). "Часто задаваемые вопросы по GNU Emacs для Windows 95/98 / ME / NT / XP и 2000". Получено 2006-09-27.
  37. ^ Боргман, Леннарт (2006). "Домашняя страница EmacsW32". Архивировано из оригинал на 2007-03-06. Получено 2006-09-27.
  38. ^ «GNU Emacs в Windows». Franz Inc., 2006 г.. Получено 2006-09-27.
  39. ^ "Пакет Carbon Emacs". Получено 2012-06-10.
  40. ^ «Aquamacs - это простой в использовании Emacs в стиле Mac для Mac OS X». Получено 2006-09-27.
  41. ^ «Emacs на Android». EmacsWiki.[нужен лучший источник ]
  42. ^ "CategoryPorts". EmacsWiki.[нужен лучший источник ]
  43. ^ Стивен Дж. Тернбулл. "XEmacs против GNU Emacs". Получено 2012-10-02.
  44. ^ «XEmacs мертв. Да здравствует XEmacs!».
  45. ^ "FrontPage - Meadow Wiki". 16 февраля 2012 г. Архивировано с оригинал на 16 февраля 2012 г.
  46. ^ "Сайт SXEmacs". Sxemacs.org. 2009-10-11. Получено 2009-11-08.
  47. ^ "Ремаки". Репозиторий Remacs на github. Получено 22 февраля, 2017.
  48. ^ «НОВОСТИ.24.5». НОВОСТИ GNU Emacs - история видимых пользователем изменений.
  49. ^ "Антиньюс". Для тех пользователей, которые живут в обратном направлении, вот информация о переходе на Emacs версии 24.5. Мы надеемся, что вам понравится большая простота, вызванная отсутствием многих функций Emacs 25.2.
  50. ^ Временная шкала Emacs. Jwz.org. Проверено 17 июля 2013.
  51. ^ "Выпущен Emacs 26.1". lists.gnu.org. Получено 2018-05-29.
  52. ^ "Выпущен Emacs 25.1". lists.gnu.org. Получено 2016-09-17.
  53. ^ "НОВОСТИ GNU Emacs - история видимых пользователем изменений". 2015-04-10. Получено 2015-04-11.
  54. ^ Петтон, Николас (10 апреля 2015 г.). "Выпущен Emacs 24.5". Архивировано из оригинал на 2015-04-11. Получено 2015-04-11.
  55. ^ Моррис, Гленн (2014-10-20). "Выпущен Emacs 24.4". Получено 2014-10-22.
  56. ^ Моррис, Гленн (10 марта 2013 г.). "Выпущен Emacs 24.3". Получено 2013-03-16.
  57. ^ Идун, Чонг (27.08.2012). "Кандидат на выпуск Emacs 24.2". Получено 2012-11-11.
  58. ^ Идун, Чонг (01.06.2012). "Кандидат на выпуск Emacs 24.1". Получено 2012-06-01.
  59. ^ Идун, Чонг (09.01.2012). «Недостаток безопасности в EDE; планы новых выпусков». Получено 2012-02-23.
  60. ^ "emacs-fu: выпущен emacs 23!". Emacs-fu.blogspot.com. 2009-07-28. Получено 2009-11-08.
  61. ^ Заводный, Джереми (2003-12-15). "Удаленное редактирование Emacs с помощью Tramp". Журнал Linux. Получено 2010-02-01. Бродяга [...] означает «Прозрачный удаленный (файловый) доступ, множественный протокол».
  62. ^ Фонд свободного программного обеспечения Inc (2007 г.). "Emacs News версии 22.1". Получено 2013-12-29.
  63. ^ а б c «НОВОСТИ.19».
  64. ^ "Временная шкала Emacs".
  65. ^ "Вспышки GNU".
  66. ^ «НОВОСТИ.18».
  67. ^ «НОВОСТИ.18». Таким программам, как почтовые программы, которые вызывают «редактор» в качестве подчиненного для редактирования некоторого текста, теперь можно указать, чтобы они использовали существующий процесс Emacs вместо создания нового редактора.
  68. ^ «НОВОСТИ.1-17».
  69. ^ "Внутреннее устройство Xemacs".
  70. ^ «НОВОСТИ.1-17».

дальнейшее чтение

внешняя ссылка