Emacs - Emacs

Emacs
EmacsIcon.svg
Буферы Org-mode, Magit и Dired в GNU Emacs
Орг-режим, Magit, и Dired буферы в GNU Emacs
Оригинальный автор (ы)Дэвид А. Мун,
Гай Л. Стил мл.
Разработчики)Различный бесплатное / бесплатное программное обеспечение разработчиков, включая волонтеров и коммерческий Разработчики
изначальный выпуск1976; 44 года назад (1976)[1][2]
Стабильный выпуск27.1 (10 августа 2020 г.; 3 месяца назад (2020-08-10)) [±]
Написано вЛисп, C
Операционная системаКроссплатформенность
ТипТекстовый редактор

Emacs /ˈямæks/ или EMACS (Редактор MACroS)[3][4][5] это семья текстовые редакторы которые характеризуются своими расширяемость.[6] Руководство для наиболее широко используемого варианта,[7] GNU Emacs, описывает его как «расширяемый, настраиваемый, самодокументированный редактор отображения в реальном времени».[8] Разработка первого Emacs началась в середине 1970-х годов, и работа над его прямым потомком, GNU Emacs, активно продолжается по состоянию на 2020 год..

Emacs имеет более 10 000 встроенных команд и пользовательский интерфейс позволяет пользователю комбинировать эти команды в макросы автоматизировать работу. Реализации Emacs обычно имеют диалект из Лисп язык программирования, который обеспечивает возможность глубокого расширения, позволяя пользователям и разработчикам писать новые команды и приложения для редактора. Были написаны расширения для управления Эл. адрес, файлы, очертания, и RSS кормит,[9] а также клоны ELIZA, Понг, Жизнь Конвея, Змея и Тетрис.[10]

Оригинальный EMACS был написан в 1976 г. Дэвид А. Мун и Гай Л. Стил мл. как набор Editor MACroS для TECO редактор.[2][3][4][5][11] Он был вдохновлен идеями TECO-макроредакторов TECMAC и TMACS.[12]

Самая популярная и наиболее портируемая версия Emacs - это GNU Emacs, созданная Ричард Столмен для Проект GNU.[13] XEmacs это вариант, который разветвленный от GNU Emacs в 1991 году. GNU Emacs и XEmacs используют похожие диалекты Lisp и по большей части совместимы друг с другом. Разработка XEmacs неактивна.

Emacs вместе с vi, один из двух основных претендентов на традиционный редакторские войны из Unix культура. Emacs - один из старейших бесплатный и открытый исходный код проекты все еще находятся в стадии разработки.[14]

История

Emacs был запущен Гай Л. Стил мл. как проект по объединению многих расходящихся TECO наборы команд и привязки клавиш в Массачусетский технологический институт[4]
На интерфейс Emacs повлиял дизайн Символика космический курсант[15]
Редактирование C исходный код в GNU Emacs
Редактирование, компиляция и выполнение C ++ код из GNU Emacs

Разработка Emacs началась в 1970-х годах в Лаборатория искусственного интеллекта Массачусетского технологического института, чья PDP-6 и PDP-10 компьютеры использовали Несовместимая система разделения времени (ЕГО) Операционная система который показал значение по умолчанию линейный редактор известный как Ленточный редактор и корректор (ТЕКО). В отличие от большинства современных текстовых редакторов, TECO использовал отдельные режимы, в которых пользователь либо добавлял текст, либо редактировал существующий текст, либо отображал документ. Нельзя помещать символы непосредственно в документ, вводя их в TECO, вместо этого нужно ввести символ ('i') на командном языке TECO, сообщающий ему переключиться в режим ввода, ввести требуемые символы, в течение которых отредактированный текст не отображался на экране, и, наконец, введите символ (), чтобы переключить редактор обратно в командный режим. (Аналогичная техника была использована для разрешения перепечатки.) Это поведение похоже на поведение программы ред.

Ричард Столмен посетил Стэнфордская лаборатория искусственного интеллекта в 1972 или 1974 годах и увидел E редактор, написанный Фредом Райтом.[16] Его впечатлила интуитивная интуиция редактора. WYSIWYG (То, что видишь, то и получаешь), которое с тех пор стало поведением по умолчанию большинства современных текстовых редакторов. Он вернулся в Массачусетский технологический институт, где Карл Миккельсен, хакер в лаборатории искусственного интеллекта добавили в TECO комбинированный режим отображения / редактирования, называемый Control-R это позволяло обновлять отображение экрана каждый раз, когда пользователь вводил нажатие клавиши. Столлман переопределил этот режим, чтобы он работал эффективно, а затем добавил макрос в режим редактирования дисплея TECO, который позволяет пользователю переопределить любое нажатие клавиши для запуска программы TECO.[5]

У E была еще одна особенность, которой не хватало TECO: редактирование с произвольным доступом. TECO был последовательным редактором страниц, который был разработан для редактирования бумажная лента на PDP-1 и обычно разрешается редактировать только одну страницу за раз в порядке страниц в файле. Вместо того чтобы принять подход E по структурированию файла для произвольного доступа к страницам на диске, Столлман модифицировал TECO, чтобы более эффективно обрабатывать большие буферы, и изменил свой метод управления файлами на чтение, редактирование и запись всего файла в виде единого буфера. Практически все современные редакторы используют этот подход.

Новая версия TECO быстро стала популярной в AI Lab и вскоре собрала большую коллекцию пользовательских макросов, названия которых часто заканчивались на MAC или MACS, который обозначал макрос. Два года спустя, Гай Стил взяли на себя проект объединения разных макросов в единый набор.[17] Завершенная реализация Стила и Столлмана включала средства для расширения и документирования нового набора макросов.[5] Получившаяся система получила название EMACS, что расшифровывалось как Редактирование MACroS или, альтернативно, E с MACroS. Столмен выбрал имя Emacs, «потому что в то время не использовался в качестве сокращения в ITS».[18] An апокрифический хакер коан утверждает, что программа была названа в честь Emack & Bolio's, популярный Кембридж магазин мороженого.[19] Первая действующая система EMACS существовала в конце 1976 года.[20]

Столлман видел проблему в слишком частой настройке и де-факто разветвляется и задает определенные условия использования.[нужна цитата ] Позже он писал:[20]

EMACS был распространен на основе совместного использования, что означает, что все улучшения должны быть возвращены мне, чтобы они были включены и распространены.

Исходный Emacs, как и TECO, работал только на PDP-10 с ITS. Его поведение существенно отличалось от поведения TECO, поэтому его можно было рассматривать как текстовый редактор, и он быстро стал стандартной программой редактирования в ITS. Майк МакМахон портирован Emacs от ИТС до Техас и ТОП-20 операционные системы. Другие участники ранних версий Emacs включают: Кент Питман, Эрл Киллиан, и Эжен Чиккарелли. К 1979 году Emacs был главным редактором лаборатории ИИ Массачусетского технологического института и его Лаборатории компьютерных наук.[21]

Реализации

Ранние реализации

Джеймс Гослинг написал первый редактор, подобный Emacs, для работы на Unix (Гослинг Emacs ) в 1981 г.

В последующие годы программисты написали множество редакторов, подобных Emacs, для других компьютерных систем. К ним относятся EINE (EINE - это не EMACS) и ZWEI[22] (ZWEI изначально был EINE), которые были написаны для Лисп-машина Майк МакМахон и Даниэль Вайнреб, и синус (Синус - это не Эйн),[23] который был написан Оуэном Теодором Андерсоном. Вайнреба EINE был первым Emacs, написанным на Лиспе. В 1978 г. Бернард Гринберг написал Multics Emacs почти полностью в Multics Lisp на Honeywell Лаборатория Кембриджских информационных систем. Multics Emacs позже поддерживался Ричард Соли, который продолжил разработку NILE-подобного Emacs редактора для проекта NIL, и Барри Марголином. Многие версии Emacs, включая GNU Emacs, позже примут Lisp в качестве языка расширения.

Джеймс Гослинг, кто позже изобретет Новости и Язык программирования Java, написал Гослинг Emacs в 1981 году. Первый редактор, подобный Emacs, для работы на Unix, Gosling Emacs был написан на C и использовал Моклисп, язык с синтаксисом, подобным Lisp, в качестве языка расширения.

Ранние объявления для Компьютерная корпорация Америки с CCA EMACS (Стив Циммерман).[24] появился в 1984 году.[25] В сравнении с GNU Emacs в 1985 году, когда он вышел, упоминалось «бесплатное» против 2400 долларов.[26]

GNU Emacs

GNU Emacs работает на Майкрософт Виндоус

Ричард Столмен начал работу над GNU Emacs в 1984 году, чтобы создать свободное программное обеспечение альтернатива проприетарному Gosling Emacs. GNU Emacs изначально был основан на Gosling Emacs, но замена Столлманом его интерпретатора Mocklisp на настоящий интерпретатор Лиспа потребовала переписать почти весь его код. Это была первая программа, выпущенная зарождающимся проектом GNU. GNU Emacs написан на C и предоставляет Emacs Lisp, также реализованный на C в качестве языка расширения. Версия 13, первый публичный выпуск, была выпущена 20 марта 1985 года. Первой широко распространенной версией GNU Emacs была версия 15.34, выпущенная позднее в 1985 году. Ранние версии GNU Emacs были пронумерованы как 1.x.x, с начальной цифрой, обозначающей версию ядра C. В 1 был удален после версии 1.12, поскольку считалось, что старший номер никогда не изменится, и поэтому нумерация была пропущена из 1 к 13.[27] В сентябре 2014 года в списке рассылки GNU emacs-devel было объявлено, что GNU Emacs примет быстрое высвобождение в будущем номера стратегии и версии будут увеличиваться быстрее.[28]

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

Большая часть функциональности GNU Emacs реализована через язык сценариев называется Emacs Lisp. Поскольку около 70% GNU Emacs написано на языке расширений Elisp,[30] нужно только портировать ядро ​​C, которое реализует интерпретатор Elisp. Это делает перенос Emacs на новую платформу значительно менее трудным, чем перенос эквивалентного проекта, состоящего только из собственного кода.

Разработка GNU Emacs была относительно закрытой до 1999 г. и использовалась в качестве примера кафедральный собор стиль развития в Собор и базар. С тех пор проект принял публичный список рассылки по разработке и анонимный CVS доступ. До 2008 года разработка велась в одном канале CVS, а затем была переведена на Bazaar. DVCS. 11 ноября 2014 года разработка перенесена на Git.[31]

Ричард Столмен оставался главным сопровождающим GNU Emacs, но иногда он отступал от этой роли. Стефан Монье и Чонг Идонг были сопровождающими с 2008 по 2015 год.[32][33] Джон Вигли был назначен сопровождающим в 2015 году после встречи со Столлманом в Массачусетском технологическом институте.[34] По состоянию на начало 2014 года в GNU Emacs было 579 индивидуальных коммиттеры на протяжении всей своей истории.[35]

XEmacs

XEmacs 21.5 г. GNU /Linux

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

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

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

  • Аквамаки - основан на GNU Emacs (Aquamacs 3.2 основан на GNU Emacs версии 24, а Aquamacs 3.3 основан на GNU Emacs версии 25), который ориентирован на интеграцию с пользовательским интерфейсом Apple Macintosh
  • Луг - японская версия для Microsoft Windows[38]
  • SXEmacs - форк XEmacs Стива Янгса[39]

Различные редакторы Emacs

uEmacs / Pk 4.0.15 в Linux
В мг крошечный Emacs-подобный редактор в OpenBSD 5.3. Редактирование Рубин исходный код
JOVE работает в Debian коробка

В прошлом росло количество проектов, направленных на создание небольших версий Emacs. GNU Emacs изначально был нацелен на компьютеры с 32-битным плоским адресным пространством и не менее 1МиБ оперативной памяти.[40] Такие компьютеры были высокого класса рабочие станции и миникомпьютеры в 1980-х, и это оставило потребность в небольших повторных реализациях, которые работали бы на общих персональный компьютер оборудование. Сегодняшние компьютеры обладают более чем достаточной мощностью и емкостью, чтобы устранить эти ограничения, но совсем недавно были разработаны небольшие клоны, которые можно было разместить на установочных дисках программного обеспечения или для использования на менее производительном оборудовании.[41]

Другие проекты нацелены на реализацию Emacs на другом диалекте Lisp или на другом языке программирования в целом. Хотя не все еще активно поддерживаются, эти клоны включают:

  • MicroEMACS, который был первоначально написан Дэйвом Конроем, а затем развит Дэниелом Лоуренсом и существует во многих вариантах.
  • мг, первоначально называвшаяся MicroGNUEmacs, а затем mg2a, ответвление MicroEMACS, являющееся общественным достоянием, призванное больше напоминать GNU Emacs. Теперь по умолчанию установлено на OpenBSD.
  • JOVE (Собственная версия Emacs Джонатана), непрограммируемая реализация Emacs Джонатана Пейна для UNIX-подобный системы.
  • МИНС (MINCE Is Not Complete Emacs), версия для CP / M и более поздних версий DOS, от Знак Единорога. MINCE превратился в Final Word, который в конечном итоге стал Borland Спринт текстовый редактор.
  • Идеальный писатель, а CP / M реализация происходит от MINCE, который был включен примерно в 1982 году в качестве текстового процессора по умолчанию в самые ранние выпуски Kaypro II и Kaypro IV. Позже он был предоставлен с Kaypro 10 в качестве альтернативы WordStar.
  • Freemacs, а ДОС версия, которая использует язык расширения на основе расширения текстового макроса и соответствует исходным 64 KiB плоский лимит памяти.
  • ЗИЛ. Зиле было рекурсивным акронимом для Zile яs Lзатхлый Eмакинтоши,[42] но проект был переписан на Lua и теперь предоставляет расширение как Zile Implements Lua Editors. Новый Zile по-прежнему включает реализацию Emacs в Lua под названием Zemacs. Также существует реализация vi под названием Zi.
  • Zmacs, для MIT Лисп-машина и его потомков, реализованных в ZetaLisp.
  • Климаки, вариант с влиянием Zmacs, реализованный в Common Lisp.
  • Эпсилон,[43] клон Emacs от Lugaru Software. Версии для DOS, Windows, Linux, FreeBSD, Mac OS X и O / S 2 включены в этот выпуск. Он использует не-Lisp язык расширения с синтаксисом C и очень раннюю параллельную реализацию буфера командной оболочки в однозадачной MS-DOS.
  • PceEmacs редактор на основе Emacs для SWI-Prolog.
  • Amacs, версия Emacs для Apple II ProDOS, реализованная в сборке 6502 Брайан Фокс.[44][45]
  • Болиголов, первоначально написано на Spice Lisp, тогда Common Lisp. Часть CMU Common Lisp. Под влиянием Zmacs. Позже разветвлен Lucid Common Lisp (как Helix), LispWorks и Закрытие CL проекты. Существует также проект Portable Hemlock, цель которого - предоставить Hemlock, работающий на нескольких реализациях Common Lisp.
  • umacs,[46] реализация под ОС-9
  • Эдвин, текстовый редактор, подобный Emacs, включенный в схему MIT / GNU.

Редакторы с эмуляцией Emacs

Функции

Emacs - это прежде всего Текстовый редактор и предназначен для работы с частями текста, хотя он может форматировать и печатать документы как текстовый редактор путем взаимодействия с внешними программами, такими как Латекс, Ghostscript или веб-браузер. Emacs предоставляет команды для управления и дифференциально отображать семантический единицы текста, такие как слова, фразы, абзацы и исходный код конструкции, такие как функции. Он также имеет макросы клавиатуры для выполнения определенных пользователем пакетов команд редактирования.

GNU Emacs - это отображение в реальном времени редактор, поскольку его правки отображаются на экране по мере их появления. Это стандартное поведение для современных текстовых редакторов, но EMACS был одним из первых, кто реализовал это. Альтернативой является выдача отдельной команды для отображения текста, например, после его изменения. Это делается в линейных редакторах, таких как ред (unix), ED (CP / M) и Эдлин (MS-DOS).

Общая архитектура

Почти все функциональные возможности Emacs, включая базовые операции редактирования, такие как вставка символов в документ, достигаются с помощью функции написано на диалекте Язык программирования Лисп. Диалект, используемый в GNU Emacs, известен как Emacs Lisp (ELisp). Уровень ELisp расположен поверх стабильного ядра базовых сервисов и абстракции платформы, написанной на Язык программирования C. В этой среде Lisp переменные и функции может быть изменен без необходимости перекомпилировать или перезапускать Emacs.

Emacs работает на структуры данных называется буферы содержащий текст с дополнительными атрибутами; каждый буфер поддерживает свой собственный точка (расположение курсора) и отметка (другое место, ограничивающее выбранные область, край вместе с точка), имя файла это посещение (если применимо) и набор активных режимы (ровно один основной режим[требуется разъяснение ] и любое количество второстепенные режимы[требуется разъяснение ]), которые управляют поведением редактора через переменные. Код Elisp может выполняться в интерактивном режиме через именованный команды, который может быть привязан к нажатию клавиш или доступен по имени; некоторые команды оценивают произвольный код Elisp из буферов (например, eval-регион или eval-буфер).

Буферы отображаются в окна, которые представляют собой мозаичные части экрана терминала или окна графического интерфейса пользователя (называемые Рамка в терминах Emacs; возможно несколько кадров). Если не указано иное, окна включают полосы прокрутки, номера строк, строка заголовка вверху (обычно отображается заголовок буфера или имя файла) и строка режима внизу (обычно перечисляются активные режимы и положение точки буфера).

В одном буфере можно открывать несколько окон, например, для просмотра разных частей длинного текста, а несколько буферов могут совместно использовать один и тот же текст, например, чтобы воспользоваться преимуществами различных основных режимов в файле со смешанным языком. При необходимости режим также можно изменить вручную с помощью M-x <название режима>.

Возможность настройки

  • Нажатия клавиш могут быть записаны в макросы и воспроизведены для автоматизации сложных повторяющихся задач. Это часто делается на специальной основе, при этом каждый макрос удаляется после использования, хотя макросы можно сохранить и вызвать позже.
  • При запуске Emacs выполняет сценарий Emacs Lisp с именем ~ / .emacs (последние версии также ищут ~ / emacs.el, ~ / .emacs.d / init.el, и ~ / .config / emacs / init.el;[49] Emacs выполнит первый найденный, игнорируя остальные). Этот персональный файл настроек может быть сколь угодно длинным и сложным, но типичное содержимое включает:
    • Установка глобальных переменных или вызов функций для настройки поведения Emacs, например (utf-8 set-default-coding-systems)
    • Привязки клавиш для переопределения стандартных и добавления ярлыков для команд, которые пользователь считает удобными, но не имеют привязки клавиш по умолчанию. Пример: (глобальный набор-ключ (kbd "C-x C-b") 'ibuffer)
    • Загрузка, включение и инициализация расширений (Emacs поставляется со многими расширениями, но по умолчанию загружаются только некоторые).
    • Настройка крючки событий для запуска произвольного кода в определенное время, например для автоматической перекомпиляции исходного кода после сохранения буфера (хук после сохранения)
    • Выполнение произвольных файлов, обычно для разделения слишком длинного файла конфигурации на управляемые и однородные части (~ / .emacs.d / и ~ / elisp / традиционные места для этих личных скриптов)
  • В настроить Расширение позволяет пользователю устанавливать свойства конфигурации, такие как цветовая схема, интерактивно, из Emacs, более удобным для пользователя способом, чем путем установки переменных в .emacs: он предлагает поиск, описания и текст справки, ввод с множественным выбором, возврат к значениям по умолчанию, изменение работающего экземпляра Emacs без перезагрузки и другие удобства, аналогичные предпочтения функциональность других программ. Настроенные значения сохраняются в .emacs (или другой указанный файл) автоматически.
  • Темы, влияющие на выбор шрифтов и цветов, определяются как файлы elisp и выбираются с помощью расширения customize.

Самодокументирование

Первый Emacs содержал Помогите библиотека, включающая документацию по каждой команде, переменной и внутренней функции. По этой причине сторонники Emacs описали программное обеспечение как самодокументирующий в том, что он представляет пользователю информацию о своих обычных функциях и текущем состоянии. Каждая функция включает строку документации, которая отображается пользователю по запросу, практика, которая впоследствии распространилась на языки программирования, включая Лисп, Ява, Perl, и Python. Эта справочная система может привести пользователей к фактическому коду для каждой функции, будь то из встроенной библиотеки или добавленной сторонней библиотеки.

Emacs также имеет встроенный руководство. Emacs отображает инструкции для выполнения простых команд редактирования и вызова учебника, когда оно запущено без файла для редактирования. Учебное пособие составлено Стюартом Крафт и Ричардом Столменом.

Культура

Церковь Emacs

Ричард Столмен как St IGNUcius святой в Церковь Emacs

В Церковь Emacs, образована Ричард Столмен, это пародия на религию создан для пользователей Emacs.[50] Хотя это относится к vi как редактор зверя (vi-vi-vi будучи 6-6-6 в римских цифрах), он не возражает против использования vi; скорее, он называет это проприетарное программное обеспечение анафема. ("Используя свободный версия vi не грех, а покаяние."[51]) У Церкви Emacs есть свой группа новостей, alt.religion.emacs,[52] у которого есть сообщения, якобы поддерживающие эту пародийную религию. Сторонники vi создали противостоящую Культ vi.

Столлман в шутку называл себя St IGNU cius, святой в церкви Emacs.[53]

Emacs мизинец

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

Пользователи решили эту проблему с помощью различных подходов. Некоторые пользователи рекомендуют просто использовать две клавиши Control на типичных клавиатурах ПК, например клавиши Shift, при наборе текста вслепую, чтобы не чрезмерно напрягать левый мизинец, правильное использование клавиатуры уменьшит RSI. [55] Программные методы включают:[56]

  • Настройка раскладки клавиш таким образом, чтобы клавиша Control заменялась клавишей Caps Lock.[57] Подобные методы включают определение клавиши Caps Lock в качестве дополнительной клавиши Control или перенос клавиш Control и Meta.Однако, поскольку эти клавиши все еще нажимаются одним и тем же пальцем, они все еще могут влиять на мизинец Emacs.[требуется разъяснение ]
  • Программное обеспечение, такое как xwrits или встроенное тип-разрыв-режим в Emacs это напоминает пользователю о регулярных запланированных перерывах.
  • Использование сочетаний клавиш ErgoEmacs (с второстепенным режимом ergoemacs-mode).[58]
  • Настройка всей раскладки клавиатуры для перемещения статистически часто используемых клавиш Emacs в более подходящие места.[59]
  • Такие пакеты как ace-jump-mode[60] или расширения elisp, которые предоставляют аналогичные функциональные возможности многоуровневой навигации, сначала запрашивая символ, а затем заменяя вхождения символа клавишами доступа для перемещения курсора.
  • злой режим, продвинутый Vim слой эмуляции.
  • режим бога, который обеспечивает подход, аналогичный подходу vim, с режимом ввода команд Emacs без клавиш-модификаторов.
  • Использование индивидуальной раскладки клавиш, предлагаемой Spacemacs, проект, где Космос key используется в качестве основного ключа для запуска управляющих последовательностей. Проект также в значительной степени включает в себя оба злой режим и режим бога.[61]
  • StickyKeys, который превращает последовательности клавиш в комбинации клавиш.[62]
  • Встроенный Emacs гадюка что позволяет использовать vi раскладка клавиш для базового редактирования текста и схема Emacs для более продвинутых функций.[63]
  • Двойная роль клавиши с более удобным доступом, такой как Пробел так что она функционирует как клавиша Control при нажатии в сочетании с другими клавишами. Эргономичные клавиатуры или клавиатуры с большим количеством клавиш рядом с пробелом, например Японские клавиатуры, разрешите большим пальцем управлять другими клавишами-модификаторами, такими как Meta или Shift.[64]
  • Использование ограниченного эргономичного набора сочетаний клавиш и доступ к другим функциям путем ввода M-x <имя-команды>. Сама M-x тоже может быть отскочена.
  • Управление Emacs через голосовой ввод.

Аппаратные решения включают специальные клавиатуры, такие как Контурная клавиатура Kinesis, который размещает клавиши-модификаторы там, где ими можно легко управлять с помощью большой палец, или Клавиатура Microsoft Natural, большие клавиши-модификаторы которого расположены симметрично по обеим сторонам клавиатуры и могут нажиматься ладонью.[54] Также можно использовать ножные педали.

В Emacs мизинец это относительно недавняя разработка. В Клавиатура космического курсанта на котором был разработан Emacs, клавиши Control были увеличены по размеру и располагались рядом с пробелом, и до них было легко дотянуться большим пальцем.[65]

Терминология

Слово emacs иногда во множественном числе Emacsen, по фонетической аналогии с Boxen и VAXen, относящиеся к различным разновидностям Emacs.[66]

Смотрите также

использованная литература

  1. ^ "Даты выпуска Emacs".
  2. ^ а б Завински, Джейми (2005-06-21) [1999]. "Временная шкала Emacs". Получено 11 августа 2015.
  3. ^ а б Гринберг, Бернард С. (1979). Multics Emacs: история, дизайн и реализация.
  4. ^ а б c "Часто задаваемые вопросы о GNU Emacs".
  5. ^ а б c d Эдриенн Г. Томпсон. "MACSimizing TECO".
  6. ^ "Введение в GNU Emacs". Для того чтобы редактор назывался «emacs», главное требование - чтобы он был полностью расширяемым с помощью реального языка программирования, а не только макроязыка.
  7. ^ "Карманный справочник GNU Emacs". GNU Emacs - самый популярный и широко распространенный из семейства редакторов Emacs.
  8. ^ "Руководство по GNU Emacs". ФСПО. Получено 24 ноября 2012.
  9. ^ "Представляем Elfeed, программу чтения веб-каналов Emacs".
  10. ^ "Развлечения". Наконец, если вы почувствуете разочарование, попробуйте описать свои проблемы известному психотерапевту Элизе. Просто сделай М-х доктор.
  11. ^ Ричард Столмен часто упоминается как еще один соавтор, но как Даниэль Вайнреб написал: «Оригинальный (на основе TECO) Emacs был создан и разработан Гаем Л. Стилом-младшим и Дэвидом Муном.После того, как он заработал и стал стандартным текстовым редактором в лаборатории искусственного интеллекта, Столлман взял на себя его обслуживание ». Сам Мун ответил:« Все верно, насколько я помню. Но честно говоря, я должен сказать, что Столлман значительно улучшил Emacs после того, как он «освободил» его от Гая и меня ». Вайнреб, Дэн (11 ноября 2007 г.), «Опровержение рассказа Столмена о формировании символики и LMI», Блог Дэна Вайнреба: программное обеспечение и инновации, заархивировано из оригинал 1 января 2009 г..
  12. ^ "История Emacs". Руководство по внутреннему устройству XEmacs. 2006-12-11. Получено 2007-08-22.
  13. ^ Алломберт, Билл. «Конкурс популярности Debian». Отчет редакции. Debian. Получено 22 ноября 2011.
  14. ^ «10 самых старых и значимых программ с открытым исходным кодом».
  15. ^ Раймонд, Эрик С .; Кэмерон, Дебра; Розенблатт, Билл (1996). Изучение GNU Emacs, 2-е издание. Севастополь, Калифорния: О'Рейли. С. 408–409. ISBN  1-56592-152-6.
  16. ^ Артур Сэмюэл (март 1980 г.). "Essential E" (PDF). Получено 2020-04-19.
  17. ^ "EMACS против vi: священная война бесконечных компьютерщиков"'". Архивировано из оригинал в 2014-11-26. Получено 2014-05-30. «EMACS как таковой на самом деле начинался как проект стандартов», - пишет Гай Стил.
  18. ^ Столмен, Ричард М. (1987). «Полноэкранный редактор EMACS». GARB (Май 1987). Лизатор, Университет Линчёпинга. стр. 8–11. Получено 2007-09-14.
  19. ^ Рейнольдс, Крейг (1992-02-10). Уайзман, Дэвид Г. (ред.). "Emac Bolio по имени Коан". Дэвид Г. Уайзман: Истории компьютерного фольклора. Один дерзкий новичок однажды сказал Столлману: «Я могу догадаться, почему редактор называется Emacs, но почему оправдатель называется Bolio?». Столмен решительно ответил: «Имена - это всего лишь имена, Emack & Bolio's - это название популярного магазина мороженого в Бостоне». Ни один из этих людей не имел никакого отношения к программе ». На его вопрос был дан ответ, но без ответа, новичок повернулся, чтобы уйти, но Столмен окликнул его: «Ни Emacs, ни Bolio не имеют никакого отношения к магазину мороженого».[постоянная мертвая ссылка ]
  20. ^ а б Столмен, Ричард (26 марта 1981 г.). EMACS: расширяемый, настраиваемый, самодокументирующийся редактор отображения (PDF) (Технический отчет). MIT AI Lab. Памятка AI 519a. Получено 2011-01-07.
  21. ^ Ли Клотц (2007-08-29). "электронное письмо, процитированное в статье" Будьте осторожны с тем, о чем вы шутите"". Нью-Йорк Таймс. Получено 2010-05-01.
  22. ^ "Комментарий автора ZWEI Дэна Вайнреба". Я написал второй за всю историю Emacs: реализацию машины на Лиспе, спецификация которой заключалась в том, чтобы «делать то же, что и Emacs Столлмана PDP-10 (исходный)», а затем продолжил свое развитие. Его просто очень много. Мне и Майку МакМахону потребовались бесконечные часы, чтобы реализовать столько команд для создания ZWEI / Zmacs.
  23. ^ Оуэн Теодор Андерсон (январь 1979 г.). «Разработка и реализация системы письма редактора, ориентированного на отображение» (PDF). Получено 2012-09-09.
  24. ^ Кристофер Келти; Марио Бьяджоли; Питер Язи; Марта Вудманси (2015). Создание и изъятие интеллектуальной собственности. Компьютерная корпорация Америки (CCA) EMACS, написанный Стивом Циммерманом
  25. ^ "Emacs". 17 декабря 2017 года.
  26. ^ «Различия между GNU Emacs и CCA Emacs. Авторские права».
  27. ^ "История Emacs".
  28. ^ "emacs-devel, сообщение 00872 (2014-09-29)". В ретроспективе 24.3 следовало назвать 25.1, а 24.4 - 26.1. В .N thingy действительно следует сохранять только для выпусков с исправлениями ошибок, и ни 24.3, 24.4, ни ранее запланированные 24.5 не являются выпусками с исправлениями ошибок.
  29. ^ Столл, Клиффорд (1988). «Преследование коварного хакера». Коммуникации ACM. 31 (5): 484–497. Дои:10.1145/42411.42412. S2CID  6956966.
  30. ^ "GNU Emacs". Open Hub. Получено 2017-11-25.
  31. ^ Раймонд, Эрик (2014-11-12). «Новый репозиторий Git запущен». Получено 2017-11-25.
  32. ^ Столмен, Ричард (2008-02-22). «Re: Ищу нового сопровождающего Emacs или команду». Список рассылки gnu.org. Получено 2017-11-25.
  33. ^ Макнамара, Пол (25 февраля 2008 г.). «Столмен о передаче GNU Emacs, его будущем и важности номенклатуры». Сетевой мир. Получено 2017-11-25.
  34. ^ Чиргвин, Ричард (2015-11-05). "Emacs получает нового сопровождающего, когда Ричард Столлман завершает работу". Реестр. Получено 2017-11-25.
  35. ^ Раймонд, Эрик (2014-03-29). «Самая уродливая… репозиторий… преобразование… когда-либо». Получено 2017-11-25. двадцать девять лет непрерывного развития не менее 579 человек
  36. ^ Стивен Дж. Тернбулл. "XEmacs против GNU Emacs". Получено 2012-10-02.
  37. ^ «XEmacs мертв. Да здравствует XEmacs!».
  38. ^ FrontPage - Meadow Wiki В архиве 2012-02-16 в Wayback Machine
  39. ^ "Сайт SXEmacs". Sxemacs.org. 2009-10-11. Получено 2009-11-08.
  40. ^ «Мои впечатления от Lisp и разработка GNU Emacs». В те дни, в 1985 году, были люди, у которых были одномегабайтные машины без виртуальной памяти. Они хотели иметь возможность использовать GNU Emacs. Это означало, что я должен был сделать программу как можно меньше.
  41. ^ "GNU Zile (Zile - это Lossy Emacs) - Резюме". У современных компьютеров более чем достаточно ресурсов для запуска и запуска полного Emacs за доли секунды, и Emacs, вероятно, то, что вам нужно. Zile - это небольшой, быстрый и мощный клон Emacs. Это полезно для небольших установок (например, на дискете), машин с небольшим объемом памяти или быстрых сеансов редактирования, особенно на удаленных машинах или в качестве другого пользователя, например корень.
  42. ^ "Домашняя страница Zile".
  43. ^ «Домашняя страница программного обеспечения Lugaru».
  44. ^ «Источник AMACS».
  45. ^ "apple2.org".
  46. ^ Пол С. Даян (1992). Гуру OS-9 - 1: Факты. Galactic Industrial Limited. ISBN  0-9519228-0-7.
  47. ^ «Текстовая система какао».
  48. ^ «Настройка сочетания клавиш для командного окна и редактора». Блоги Mathworks. 2007-05-11. Получено 2019-08-18.
  49. ^ "Файл инициализации".
  50. ^ "Святой ИГНУций - Ричард Столмен". Получено 29 января 2015.
  51. ^ "Полная выборочная стенограмма выступления Ричарда Столмена в ANU". Получено 29 января 2015.
  52. ^ группа новостей alt.religion.emacs
  53. ^ "Святой IGNUcius - Ричард Столмен". www.stallman.org. Получено 27 марта 2018.
  54. ^ а б "Как избежать проблемы Emacs Pinky". Xahlee.org. Получено 2009-11-08.
  55. ^ "Emacs: почему не следует менять местами клавиши {Caps Lock, Control}". При слепом наборе модификаторы используются парами, например ⇧ Shift. Принятый эргономичный способ нажатия комбинаций модификаторов - это нажатие одной рукой клавиши-модификатора, а другой - буквенной клавиши. Использование двух рук позволяет избежать напряжения мышц одной рукой.
  56. ^ "EmacsWiki: Повторное повреждение напряжения". Получено 29 января 2015.
  57. ^ "Перемещение клавиши Ctrl". EmacsWiki. Получено 2009-11-08.
  58. ^ «Домашняя страница ErgoEmacs». Получено 2018-09-01.
  59. ^ «Раскладка клавиатуры».
  60. ^ "EmacsWiki: Ace Jump". Получено 29 января 2015.
  61. ^ "Космические машины". Получено 2015-04-20.
  62. ^ BayleShanks (07.10.2009). «Липкие модификаторы». EmacsWiki. Получено 2009-11-08.
  63. ^ "Viper Mode". EmacsWiki. Получено 2009-11-08.
  64. ^ «Модификатор дома от Evdev». Получено 2015-04-14.
  65. ^ «Почему горячие клавиши Emacs болезненны».
  66. ^ «ВАКСЕН». Catb.org. Получено 2009-11-08.

Список используемой литературы

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