В чем разница между Aquamacs и другими версиями Emacs для Mac?

99

У пользователей Macintosh есть несколько вариантов предустановленных Emacs. Мне известны следующие версии:

Некоторые вопросы, которые я имел в виду:

  1. Отличаются ли эти версии каким-либо существенным образом?
  2. Можно ли получить функциональность других, просто изменив файл инициализации?
  3. Эти изменения возвращаются вверх по течению?

Я знаю, что Aquamacs считается «неортодоксальным», поскольку он имеет очень Mac-подобные сочетания клавиш, но мне также интересно понять различия между версиями не-Aquamacs.

Эрик Браун
источник
Точка данных: я только что попробовал кучу этих emacsen и остановился на вилке Ямамото Мицухару. Я использовал Aquamacs в течение многих лет, но он часто ломался (что-то связанное с фреймами / вкладками), и я больше не мог это терпеть. Кажется, Aquamacs делал много вещей, которые никто другой не делал, но это уже не так. Вилка Yamamoto кажется лучшим выбором для Mac прямо сейчас.
Скотт Фрейз
Я обычно использую Aquamacs, решил на этот раз заваривать. Один минус: чтобы получить клавишу #, установите австралийский тип ввода!
Дэйв Ходжкинсон

Ответы:

126

Emacs для Mac OS X

Emacs для Mac OS X предоставляет двоичные файлы OS X для собственно GNU Emacs. Это примерно то же самое, что вы получите, скомпилировав выпуск GNU Emacs ./configure --with-ns. Сайт предоставляет сборки стабильных релизов и предварительных тестов, а также ночные снимки. Все эти сборки являются автономными, что позволяет безопасно пробовать предварительные тесты и снимки.

Обратите внимание, что в этих двоичных файлах отсутствует поддержка некоторых библиотек, в частности GNU TLS и ImageMagick. Если вы хотите использовать их - первое особенно важно, если вы хотите читать почту в Emacs - вам нужно получить GNU Emacs от Homebrew.

Emacs для OS X Модифицированный

Согласно веб-сайту Emacs для OS X Modified, это просто стандартная сборка GNU Emacs, основанная на вышеизложенном, с некоторыми дополнительными пакетами и необходимой конфигурацией для включения всех этих пакетов.

За исключением заметного ESS, все эти пакеты доступны через архивы пакетов Emacs для установки в любой Emacs. Например, вы можете установить AUCTeX в собственном GNU Emacs, просто набрав M-x package-install RET auctexи включив его.

Выбор пакетов предполагает, что он в основном предназначен для статистиков и исследователей, которые будут обрабатывать свои данные с помощью R и ESS, а затем публиковать статью с Org или AUCTeX и LaTeX.

Для других пользователей этот дистрибутив, вероятно, не имеет большого значения, так как вам все равно нужно будет установить дополнительные пакеты, и он также может сразу использовать GNU Emacs.

Это единственный дистрибутив, который вы можете создать самостоятельно в GNU Emacs, установив дополнительные пакеты Emacs и настроив их init.elсоответственно. Другие дистрибутивы являются исправленными и разветвленными вариантами GNU Emacs.

Emacs Mac Port

Emacs Mac Port - это набор патчей для GNU Emacs для лучшей интеграции с OS X. Обратите внимание, что сама GNU Emacs также имеет встроенную поддержку OS X, но в ней отсутствуют специфические дополнения для OS X, которые предоставляет этот набор исправлений. В частности:

  • Базовый текст для рендеринга текста, который улучшает внешний вид текста и поддержку Юникода. Это было объединено с собственно GNU Emacs и является частью Emacs 24.4.
  • Плавная прокрутка. GNU Emacs правильно прокручивает линии, что очень медленно и с трекпадами. Emacs Mac Port использует основанную на пикселях прокрутку, как и другие родные приложения OS X, что выглядит намного более плавным и гораздо более точным. Это влияет только на прокрутку трекпада, поэтому, если вы не используете мышь, она вам не понадобится.
  • Жесты. Вы можете ущипнуть, чтобы увеличить / уменьшить размер текста. Опять же, если вы не используете мышь, вы ее не заметите, и, возможно, это просто необычная функция.
  • Поддержка Apple Events. Вы можете отправлять и получать Apple Events из Emacs Lisp.
  • Словарь службы. Нажатие тремя пальцами будет искать слово под курсором в приложении Apple Dictionary, как и в других приложениях OS X.
  • Интеграция услуг. Вы можете открыть выбранный файл в Finder из контекстного меню в запущенном Emacs.
  • Нативное отображение SVG с использованием Webkit, а не librsvg. Насколько мне известно, Webkit лучше поддерживает SVG, но кто просматривает SVG в Emacs?

Вы заметите, что большинство этих функций просто связаны с интеграцией в OS X и не являются необходимыми для использования Emacs. Кроме того, Emacs Mac Port во многом похож на стандартный GNU Emacs.

Некоторые из его функций возвращаются в GNU Emacs, но другие никогда не будут объединены, поскольку они являются эксклюзивными для OS X и недоступны в бесплатной альтернативной версии GNUStep, которая противоречит политике FSF не поддерживать проприетарные операционные системы над их бесплатными альтернативами. Кроме того, если я правильно помню, автор этого набора патчей не проявил большого интереса к возвращению функций, вероятно, по первой причине.

Aquamacs

Aquamacs - это сильно залатанная ветка GNU Emacs. В отличие от всего вышеперечисленного, он не основан на GNU Emacs, но имеет независимое дерево исходников. Тем не менее, он регулярно синхронизируется с предшествующим Emacs и внимательно следит за релизами Emacs Однако это неизбежно отстает от магистрали GNU Emacs.

Он сильно изменен, чтобы выглядеть и чувствовать себя как родное приложение OS X. В частности, он поддерживает и поощряет стандартные привязки клавиш OS X, например, Cmd+Sдля сохранения. Стандартные привязки Emacs в основном все еще доступны.

Так как это вилка, сильно измененная и с совершенно другими целями и принципами, ни одна из ее функций не будет объединена с GNU Emacs: большинство этих модификаций прямо противоречат «духу», идеям и философии GNU Emacs.

TL; DR (или: что мне выбрать)

  • Если вы статистик или исследователь и не хотите устанавливать Emacs самостоятельно: Emacs для OS X изменен
  • Если вам нужно родное приложение OS X больше, чем все остальное: Aquamacs
  • Если вы хотите Emacs, но с настолько хорошей поддержкой OS X, насколько это возможно: Emacs Mac Port
  • Если вы просто хотите Emacs без каких-либо сложностей: Emacs для Mac OS X

Мой личный совет

Я никогда не пробовал Emacs для OS X Modified или Aquamacs, но я не вижу в этом ничего полезного (я не статистик и могу установить AUCTeX самостоятельно). Я также рекомендовал бы против последнего: это форк, и, хотя он обеспечивает лучшую интеграцию с OS X, он неизбежно отстает и получает меньшую поддержку от сообщества Emacs в целом. Многие пакеты не поддерживают Aquamacs, поэтому при возникновении проблем у вас есть хороший шанс остаться одним пользователем Aquamacs.

Я попробовал Emacs Mac Port, и хотя плавная прокрутка, жесты и Apple Events хороши, я обнаружил, что эти небольшие преимущества не стоят хлопот с сохранением исправленной версии GNU Emacs. YMMV, очевидно, и если вам нужна хорошая поддержка OS X, и если вам нравятся эти функции, вам обязательно стоит попробовать.

В настоящее время я использую только сборки снимков GNU Emacs. Они имеют достаточно хорошую поддержку OS X, и их, безусловно, проще всего установить, и их лучше всего поддерживают сообщества.

Раньше я получал их от Emacs для Mac OS X, но теперь я использую Homebrew, потому что он поддерживает больше библиотек, в частности GNU TLS для зашифрованных сетевых подключений.

В общем, используйте brew install emacs --HEAD --use-git-head --with-cocoa --with-gnutls --with-rsvg --with-imagemagick:).

lunaryorn
источник
8
Что ж, использование порта Mac не так уж сложно. От github.com/railwaycat/emacs-mac-port : brew tap railwaycat/emacsmacportа затемbrew install emacs-mac
Райнер
3
«Порт Mac» определенно был не первым Emacs с поддержкой родного OSX GUI. Вместо этого он родился примерно в то время, когда Emacs перешел от старого кода «Carbon Emacs» к более новому коду «Emacs.app» (этот шаг был сделан частично потому, что Apple предположительно устарел, частично потому, что никто не хотел поддерживать этот код Отчасти потому, что в коде «Emacs.app» появилась возможность поддержки GNUstep. До сегодняшнего дня поддержка GNUstep практически не используется (хотя иногда она используется для отслеживания и исправления ошибок в коде OSX при использовании системы GNU / Linux). )).
Стефан
6
Отличная рецензия. Некоторым пользователям OSX может быть интересно узнать, что Aquamacs имеет встроенную поддержку родной проверки орфографии OSX, которая включает в себя список сохраненных слов, которые пользователь ранее добавил в словарь. На мой взгляд, это одна из ключевых особенностей Aquamacs, которая не может быть продублирована в других версиях Emacs без изменения исходного кода перед сборкой. Тем не менее, я предпочитаю aspell и уклоняться от использования мыши - поэтому проверка орфографии OSX (хотя и очень изящная) не является причиной для меня, чтобы перейти на Aquamacs.
юрист
1
Отказ от ответственности: я использую Linux, и я не уверен насчет OSX, но я пишу электронную почту в Emacs и мне не нужен TLS; Я (или, скорее mu4e) призываю msmtpк отправке и mbsyncдля получения моих электронных писем.
mbork
1
Маленькая гнида: для компиляции из источника требуется ./configure --with-ns, а не --enable-ns.
Харальд Ханче-Олсен
22

Несколько фактических исправлений об Аквамаке. Несмотря на то, что он поддерживает свое собственное дерево исходников, он очень регулярно объединяется с Emacs, и почти сразу же происходит с каждым выпуском Emacs. Aquamacs 3.1 вышел в день выхода Emacs 24.4 (он включал в себя все возможности Emacs 24.4 и подмножество его ошибок). Aquamacs имеет> 10 тыс. Постоянных пользователей, активно поддерживается.

Порт Emacs Mac появился намного позже, чем порт Ecocs для какао и Nextstep; он считается экспериментальным, и первоначальный автор советует не распространять его за пределами своего набора патчей. Таким образом, поддержка будет гораздо более ограниченной, чем для любых других решений. Однако это интересная линия развития, которая в конечном итоге принесет большую пользу сообществу, если она будет принята разработчиками. Тем не менее, пользователи должны считать себя «бета-тестерами» и сообщать о своих возможностях с помощью хороших отчетов об ошибках и исправлений.

Ценность Aquamacs заключается в его философии «готов к работе»: интеграция с LaTeX, EmacsSpeaksStatistics и Mac осуществляется из коробки. Не требуется сложной конфигурации.

davidswelt
источник
Emacs выпускает нечасто, так что если Aquamacs сливается только после релизов, что является нечастым. Я обновил свой ответ, чтобы удалить эту часть, хотя. Кроме того, хотя сам Aquamacs активно поддерживается и поддерживается, поддержка сообщества довольно скудна. Немногие сторонние пакеты явно поддерживают Aquamacs. Фактически, многие пакеты явно поддерживают только GNU Emacs, а не какие-либо вилки или производные, включая XEmacs или Aquamacs.
lunaryorn
Есть ли у вас источник для совета авторов портов Mac, чтобы не распространять части вне их набора исправлений?
lunaryorn
@lunaryorn: Я считаю, что это было правдой в то время, но уже не так. В своем редактировании я удалил этот комментарий.
Дэвидсвелт
11

Я перепробовал все вышеперечисленные варианты (даже тап, рекомендованный Райнером в комментарии выше), но ни один из них не помог мне (проблемы с прокруткой трекпада, зависания и т. Д.). Однако я вполне доволен вилкой Ямамото Мицухару, которую поддерживает страница github железной дороги. Это актуально по отношению к официальной версии GNU. Просто загрузите .dmgизображение здесь: https://github.com/railwaycat/emacs-mac-port/wiki/Downloads

NVaughan
источник
8
Если у вас есть немного свободного времени, пожалуйста, уточните свой ответ и изложите различия между этой конкретной сборкой и сборкой ванили. Таким образом, ваш ответ становится больше, чем просто комментарий, и читателю не нужно будет оставлять этот ответ и просматривать страницы, такие как: github.com/railwaycat/emacs-mac-port/blob/master/README-mac
lawlist
0

Я использовал версию Aquamacs до недавнего времени. Основная причина, по которой я предпочел версию Auquamacs, когда я использовал ее на Mac, заключалась в том, что я мог использовать Dragon Dictate с emacs с настройками по умолчанию. Когда я настраивал настройки, у меня были проблемы с диктовкой в ​​обычной версии emacs. Кроме этого и стандартных сочетаний клавиш, я не сильно отличался от того, с кем взаимодействовал. Мои настройки будут загружаться таким же образом. С помощью сочетаний клавиш Удобно копировать, вырезать, вставлять и отменять буфер обмена, используя cmd-c, cmd-v, cmd-x, cmd-z, S-cmd-z просто по привычке на Mac и что я был в состоянии автоматически сделать это одной рукой на клавиатуре Mac, но вы можете установить те, что в обычных Emacs на все, что угодно, Auquamacs не требуется для многих из этих настроек Mac.

Тем не менее, в прошлый раз, когда я проверял, emacs в Auquamacs не обновлялся в течение года и, похоже, отстал. Я также получал некоторые предупреждения с истекшим сроком действия сертификата. Я не был уверен, что это все еще поддерживали. Это не похоже, что это было обновлено на веб-сайте. Мне удалось установить обычную версию Emacs для Mac с помощью homebrew и обновить файл инициализации до параметров для Mac, которые позволили работать диктовке.

Но я недавно использовал linuxmint и думаю, что буду придерживаться этого. Моя система работает намного тише, быстрее и плавнее с Linux, и легко настроить внешний вид рабочего стола. Было несколько небольших изменений, которые я сделал в файле инициализации emacs в версии для Linux, но это почти то же самое. Я не смог найти хорошее решение для диктовки на Linux, хотя. Я не знаю, может ли моя машина работать с другой операционной системой на виртуальной машине только для программного обеспечения для диктовки. Программное обеспечение для диктовки также является источником ресурсов, но это уже другая проблема. Было бы неплохо, если бы Dragon выпустил версию Dictate для Linux.

Брайан Анё
источник