¿Cuál es la diferencia entre Aquamacs y otras versiones para Mac de Emacs?


99

Los usuarios de Macintosh tienen varias opciones de Emacs preconstruidos. Conozco las siguientes versiones:

Algunas preguntas que tenía en mente:

  1. ¿Estas versiones difieren de alguna manera significativa?
  2. ¿Se puede obtener la funcionalidad de los demás simplemente modificando el archivo de inicialización?
  3. ¿Estos cambios regresan río arriba?

Soy consciente de que Aquamacs se considera "poco ortodoxo" ya que tiene combinaciones de teclas muy parecidas a las de Mac, pero también estoy interesado en comprender las diferencias entre las versiones que no son Aquamacs.


Punto de datos: acabo de probar un montón de estos emacsen y me decidí por el tenedor de Yamamoto Mitsuharu. He estado usando Aquamacs durante años, pero se ha bloqueado con frecuencia (algo que ver con cuadros / pestañas) y no pude soportarlo más. Parece que Aquamacs solía hacer muchas cosas que nadie más hacía, pero ese ya no es el caso. La bifurcación de Yamamoto parece la mejor opción para Mac en este momento.
Scott Fraize

Usualmente uso Aquamacs, decidí preparar esta vez. Una cuestión menor: para obtener la tecla #, configure el tipo de entrada australiano.
Dave Hodgkinson el

Respuestas:


126

Emacs para Mac OS X

Emacs para Mac OS X proporciona binarios OS X de GNU Emacs propiamente dicho. Es aproximadamente lo mismo que obtendría compilando un tarball de lanzamiento de GNU Emacs ./configure --with-ns. El sitio proporciona versiones de versiones estables y pruebas preliminares, así como instantáneas nocturnas. Todas estas compilaciones son independientes, lo que le permite probar con seguridad las pruebas preliminares y las instantáneas.

Sin embargo, tenga en cuenta que estos binarios carecen de soporte para algunas bibliotecas, en particular GNU TLS e ImageMagick. Si desea utilizarlos, el primero es particularmente importante si desea leer su correo en Emacs, debe obtener GNU Emacs de Homebrew.

Emacs para OS X modificado

Según el sitio web, Emacs para OS X Modified es simplemente una compilación estándar de GNU Emacs, basada en lo anterior, con algunos paquetes adicionales y la configuración necesaria para habilitar todos estos paquetes.

Con la notable excepción de ESS, todos estos paquetes están disponibles a través de los archivos de paquetes de Emacs para su instalación en cualquier Emacs. Por ejemplo, puede instalar AUCTeX en GNU Emacs correctamente simplemente escribiendo M-x package-install RET auctexy habilitándolo.

La elección de los paquetes sugiere que está principalmente dirigido a estadísticos e investigaciones, que trabajarían a través de sus datos con R y ESS, y luego publicarían un artículo con Org o AUCTeX y LaTeX.

Para otros usuarios, esta distribución es probablemente de poco valor, ya que de todos modos necesitaría instalar paquetes adicionales, y también podría usar GNU Emacs correctamente de inmediato.

Esta es la única distribución que puede crear usted mismo en GNU Emacs propiamente dicho instalando paquetes Emacs adicionales y ajustando su init.elcorrespondiente. Las otras distribuciones son variantes parcheadas y bifurcadas de GNU Emacs.

Emacs Mac Port

Emacs Mac Port es un conjunto de parches para GNU Emacs adecuado para una mejor integración de OS X. Tenga en cuenta que GNU Emacs también tiene soporte nativo para OS X, pero carece de las adiciones específicas de OS X, que proporciona este conjunto de parches. Notablemente:

  • Texto principal para la representación de texto, que mejora la apariencia del texto y el soporte Unicode. Esto se fusionó con GNU Emacs propiamente dicho, y forma parte de Emacs 24.4.
  • Desplazamiento suave GNU Emacs se desplaza correctamente en línea, lo cual es muy lento y nervioso con trackpads. Emacs Mac Port utiliza desplazamiento basado en píxeles como otras aplicaciones nativas de OS X, que se siente mucho más suave y es mucho más preciso. Sin embargo, solo afecta el desplazamiento del trackpad, por lo que si no usa el mouse, no lo necesitará.
  • Gestos Puede pellizcar para aumentar / disminuir el tamaño del texto. Nuevamente, si no usa el mouse, no lo notará, y podría decirse que es solo una característica elegante.
  • Soporte para eventos de Apple. Puede enviar y recibir eventos de Apple desde Emacs Lisp.
  • Servicio de diccionario. El toque con tres dedos buscará la palabra debajo del cursor en la aplicación Diccionario de Apple, como en otras aplicaciones OS X.
  • Integración de servicios. Puede abrir un archivo seleccionado en Finder desde el menú contextual en el Emacs en ejecución.
  • Visualización SVG nativa utilizando Webkit, en lugar de librsvg. Webkit tiene un mejor soporte de SVG que yo sepa, pero ¿quién ve los SVG en Emacs?

Notarás que la mayoría de estas características solo están relacionadas con la integración en OS X y no son esenciales para usar Emacs. Aparte de eso, Emacs Mac Port es muy parecido a un GNU Emacs estándar.

Algunas de sus características regresan a GNU Emacs, pero otras nunca se fusionarán, ya que son exclusivas de OS X y no están disponibles en la alternativa gratuita GNUStep, que va en contra de la política de la FSF de no admitir sistemas operativos propietarios sobre sus alternativas gratuitas. Además, si no recuerdo mal, el autor de este parche ha mostrado poco interés en volver a incorporar las características, probablemente por la razón anterior.

Aquamacs

Aquamacs es un tenedor muy parcheado de GNU Emacs. A diferencia de todo lo anterior, no está basado en GNU Emacs, sino que tiene un árbol fuente independiente. Sin embargo, se sincroniza regularmente con Emacs, y sigue de cerca las versiones de Emacs. Sin embargo, inevitablemente va a la zaga del tronco de GNU Emacs.

Está muy modificado para verse y sentirse como una aplicación nativa de OS X. Cabe destacar que admite y fomenta las combinaciones de teclas estándar de OS X, por ejemplo, Cmd+Spara guardar. Sin embargo, los enlaces estándar de Emacs todavía están disponibles en su mayoría.

Dado que es una bifurcación, muy modificada y con objetivos y principios completamente diferentes, ninguna de sus características se fusionará con GNU Emacs: la mayoría de estas modificaciones van directamente contra el "espíritu", las ideas y la filosofía de GNU Emacs.

TL; DR (o: ¿Qué debo elegir?)

  • Si usted es un estadístico o investigador y no desea configurar Emacs usted mismo: Emacs para OS X modificado
  • Si desea una aplicación nativa de OS X más que todo lo demás: Aquamacs
  • Si desea Emacs, pero con el mejor soporte de OS X que puede ser: Emacs Mac Port
  • Si solo quiere Emacs sin complicaciones: Emacs para Mac OS X

Mi consejo personal

Nunca probé Emacs para OS X Modified o Aquamacs, pero veo poco uso en el primero (no soy estadístico, y puedo instalar AUCTeX por mí mismo). También recomendaría contra esto último: es una bifurcación, y si bien le brinda la mejor integración de OS X, inevitablemente se queda atrás y recibe menos apoyo de la comunidad de Emacs en general. Muchos paquetes no son compatibles con Aquamacs, por lo que si hay problemas, hay una buena posibilidad de que te quedes solo como usuario de Aquamacs.

Probé Emacs Mac Port, y aunque el desplazamiento suave, los gestos y los eventos de Apple son agradables, descubrí que estos pequeños beneficios no valen la molestia de mantener una versión parcheada de GNU Emacs. YMMV, obviamente, y si te interesa un buen soporte para OS X, y si estas características te atraen, definitivamente deberías probarlo.

Hoy en día, solo uso las construcciones de instantáneas de GNU Emacs. Estos tienen un soporte OS X razonablemente bueno y son, con mucho, los más fáciles de instalar y los más compatibles con la comunidad.

Solía ​​obtenerlos de Emacs para Mac OS X, pero ahora uso Homebrew, ya que admite más bibliotecas, especialmente GNU TLS para conexiones de red encriptadas.

En general: use brew install emacs --HEAD --use-git-head --with-cocoa --with-gnutls --with-rsvg --with-imagemagick:).


8
Bueno, usar el puerto mac tampoco es tan difícil. De github.com/railwaycat/emacs-mac-port : brew tap railwaycat/emacsmacporty luegobrew install emacs-mac
Rainer el

3
El "puerto Mac" definitivamente no fue el primer Emacs con soporte nativo de OSX GUI. En cambio, nació justo cuando Emacs pasó del antiguo código "Carbon Emacs" al código más nuevo "Emacs.app" (este movimiento se realizó en parte porque Apple supuestamente desaprobó el carbono, en parte porque nadie quería mantener ese código , y en parte porque el código "Emacs.app" vino con la posibilidad de soportar GNUstep. Hasta el día de hoy, el soporte de GNUstep es básicamente inutilizable (aunque ocasionalmente se usa para rastrear y corregir errores en el código OSX mientras se usa un sistema GNU / Linux )).
Stefan

66
Excelente redacción. Algunos de los usuarios de OSX pueden estar interesados ​​en saber que Aquamacs tiene soporte incorporado para el corrector ortográfico nativo de OSX, que incluye la lista de palabras guardadas que el usuario ha agregado previamente al diccionario. En mi opinión, esa es la característica clave de Aquamacs que no se puede duplicar en otras versiones de Emacs sin modificar el código fuente antes de construir. Sin embargo, prefiero aspell y evitar usar el mouse, por lo que el corrector ortográfico de OSX (aunque muy ingenioso) no es una razón para cambiarme a Aquamacs.
ley

1
Descargo de responsabilidad: uso Linux, y no estoy seguro acerca de OSX, pero escribo correos electrónicos en Emacs y no necesito TLS; Yo (o más bien mu4e) llamo msmtppara enviar y mbsyncrecuperar mis correos electrónicos.
mbork

1
Pequeña liendre: Compilar desde la fuente requiere ./configure --with-ns, no --enable-ns.
Harald Hanche-Olsen

22

Algunas correcciones de hechos sobre Aquamacs. Si bien mantiene su propio árbol de origen, se fusiona muy regularmente con Emacs, y casi inmediatamente con cada lanzamiento de Emacs. Aquamacs 3.1 salió el día que se lanzó Emacs 24.4 (e incorporó todas las características de Emacs 24.4 y un subconjunto de sus errores). Aquamacs tiene> 10k usuarios habituales, es compatible activamente.

El puerto Mac de Emacs se originó mucho más tarde que el puerto Cocoa y Nextstep en Emacs; se considera experimental y el autor original desaconseja la redistribución fuera de su conjunto de parches. Como tal, el soporte será mucho más limitado que para cualquiera de las otras soluciones. Sin embargo, es una línea interesante de desarrollo que eventualmente proporcionará mucho valor a la comunidad si los desarrolladores la adoptan. Sin embargo, los usuarios deben considerarse a sí mismos "beta testers" y contribuir con lo que puedan con buenos informes de errores y parches.

El valor de Aquamacs reside en su filosofía de "listo para rodar": LaTeX, EmacsSpeaksStatistics y la integración de Mac funcionan de manera inmediata. No se necesita una configuración compleja.


Emacs solo se publica con poca frecuencia, por lo que si Aquamacs se fusiona solo después de los lanzamientos, es poco frecuente. Sin embargo, he actualizado mi respuesta para eliminar esa parte. Además, si bien Aquamacs en sí mismo se mantiene y apoya activamente, el apoyo comunitario es bastante escaso. Pocos paquetes de terceros admiten explícitamente Aquamacs. De hecho, muchos paquetes admiten explícitamente solo GNU Emacs, y no bifurcaciones o derivados, incluidos XEmacs o Aquamacs.
lunaryorn

¿Tiene una fuente para aconsejar a los autores del puerto Mac que no redistribuyan partes fuera de su conjunto de parches?
lunaryorn

@lunaryorn: Creo que esto era cierto en ese momento, pero ya no lo es. En mi edición, eliminé ese comentario.
davidswelt

11

He intentado todas las opciones anteriores (incluso el toque recomendado por Reiner en un comentario anterior) por ninguna me ha funcionado bien (problemas de desplazamiento del trackpad, bloqueos, etc.). Sin embargo, estoy bastante contento con la bifurcación de Yamamoto Mitsuharu, mantenida por la página de github del ferrocarril. Está actualizado con respecto a la versión oficial de GNU. Simplemente descargue la .dmgimagen aquí: https://github.com/railwaycat/emacs-mac-port/wiki/Downloads


8
Cuando tenga algo de tiempo libre, amplíe su respuesta y establezca las diferencias entre esta compilación particular y la compilación vainilla. De esa manera, su respuesta se convierte en algo más que un comentario y no se requeriría que el lector deje esta respuesta y vea páginas como: github.com/railwaycat/emacs-mac-port/blob/master/README-mac
lawlist

0

Estaba usando la versión Aquamacs hasta hace poco. La razón principal por la que prefería la versión Auquamacs mientras la usaba en Mac era porque podía usar Dragon Dictate con emacs con la configuración predeterminada. Cuando estaba configurando mi configuración tuve problemas con el dictado en la versión normal de emacs. Aparte de eso y las combinaciones de teclas predeterminadas, no hubo mucha diferencia con la que interactué. Mi configuración se cargaría de la misma manera. Con las combinaciones de teclas Es útil hacer que el portapapeles copie, corte, pegue y deshaga usando cmd-c, cmd-v, cmd-x, cmd-z, S-cmd-z solo por costumbre en mac y que yo fue capaz de hacerlo automáticamente con una mano en el teclado mac, pero puede configurarlos en los emacs normales a lo que quiera, auquamacs no es necesario para muchas de esas configuraciones mac.

Sin embargo, la última vez que revisé los emacs en Auquamacs no se habían actualizado durante un año y parecía estar retrasado. También recibí algunas advertencias de certificados vencidos. No estaba seguro de si todavía se mantenía. No parece que se haya actualizado en el sitio web. Pude instalar la versión normal de Emacs para Mac con homebrew y actualizar mi archivo init a la configuración para mac que permitió que el dictado funcionara.

Pero he estado usando linuxmint recientemente y creo que voy a seguir con eso. Mi sistema es mucho más silencioso, más rápido y más fluido con Linux y es fácil personalizar la apariencia del escritorio. Hubo algunos cambios menores que hice en el archivo init de emacs en la versión de Linux, pero es más o menos lo mismo. Sin embargo, no he podido encontrar una buena solución para el dictado en Linux. No sé si mi máquina puede manejar la ejecución de otro sistema operativo en una máquina virtual solo para el software de dictado. El software de dictado también es un consumidor de recursos, pero ese es otro problema. Sería bueno si Dragon lanzara una versión de Dictate en Linux.