Jaka jest różnica między Aquamacs a innymi wersjami Emacsa na komputery Mac?

99

Użytkownicy komputerów Macintosh mają kilka opcji wcześniejszych wersji Emacsa. Mam świadomość następujących wersji:

Kilka pytań, które miałem na myśli:

  1. Czy te wersje różnią się w znaczący sposób?
  2. Czy można uzyskać funkcjonalność innych, po prostu modyfikując plik inicjujący?
  3. Czy zmiany te wracają z powrotem?

Wiem, że Aquamacs jest uważany za „niekonwencjonalny”, ponieważ ma bardzo podobne do Maca skróty klawiszowe, ale jestem również zainteresowany zrozumieniem różnic między wersjami innymi niż Aquamacs.

Eric Brown
źródło
Punkt danych: Właśnie wypróbowałem kilka tych emacsenów i zdecydowałem się na widelec Yamamoto Mitsuharu. Używam Aquamaców od lat, ale często się zawiesza (coś wspólnego z ramkami / kartami) i nie mogłem już tego znieść. Wygląda na to, że Aquamacs robił dużo rzeczy, których nikt inny nie robił, ale już tak nie jest. Widelec Yamamoto wydaje się teraz najlepszym wyborem dla komputerów Mac.
Scott Fraize
Zwykle używam Aquamacs, tym razem postanowiłem zaparzyć. Jedna drobna nitka: aby uzyskać klucz #, ustaw typ wprowadzania w Australii!
Dave Hodgkinson,

Odpowiedzi:

126

Emacs dla Mac OS X.

Emacs dla Mac OS X zapewnia właściwe pliki binarne GNU Emacs dla systemu OS X. Jest mniej więcej taki sam, jak przy kompilacji tarballa GNU Emacs ./configure --with-ns. Witryna zawiera kompilacje stabilnych wersji i testów wstępnych, a także nocne migawki. Wszystkie te kompilacje są samodzielne, co pozwala bezpiecznie wypróbować testy wstępne i migawki.

Zauważ jednak, że te pliki binarne nie obsługują niektórych bibliotek, zwłaszcza GNU TLS i ImageMagick. Jeśli chcesz ich użyć - ta pierwsza jest szczególnie ważna, jeśli chcesz czytać swoją pocztę w Emacsie - musisz zdobyć GNU Emacs z Homebrew.

Zmodyfikowano Emacsa dla OS X.

Według strony internetowej Emacs dla OS X Modified jest po prostu standardową kompilacją GNU Emacs, opartą na powyższym, z kilkoma dodatkowymi pakietami i niezbędną konfiguracją, aby umożliwić wszystkie te pakiety.

Z wyjątkiem godnego uwagi ESS, wszystkie te pakiety są dostępne poprzez archiwa pakietów Emacsa do instalacji w dowolnym Emacsie. Na przykład, możesz zainstalować AUCTeX we właściwym GNU Emacs, po prostu wpisując M-x package-install RET auctexi włączając go.

Wybór pakietów sugeruje, że jest on głównie skierowany do statystyk i badań, którzy sprawdziliby ich dane za pomocą R i ESS, a następnie opublikowali artykuł w Org lub AUCTeX i LaTeX.

Dla innych użytkowników ta dystrybucja ma prawdopodobnie niewielką wartość, ponieważ i tak trzeba będzie zainstalować dodatkowe pakiety i równie dobrze można od razu użyć GNU Emacs.

Jest to jedyna dystrybucja, którą możesz sam stworzyć w GNU Emacs, instalując dodatkowe pakiety Emacsa i odpowiednio je dostosowując init.el. Pozostałe dystrybucje to łatane i rozwidlone warianty GNU Emacs.

Port Mac Emacsa

Emacs Mac Port to zestaw poprawek dla GNU Emacs odpowiedni dla lepszej integracji OS X. Zauważ, że sam GNU Emacs ma także natywną obsługę OS X, ale brakuje w nim specyficznych dodatków do OS X, które zapewnia ten zestaw poprawek. Szczególnie:

  • Podstawowy tekst do renderowania tekstu, który poprawia wygląd tekstu i obsługę Unicode. Zostało to włączone do właściwego GNU Emacsa i jest częścią Emacsa 24.4.
  • Płynne przewijanie. GNU Emacs poprawnie przewija liniowo, co jest bardzo opóźnione i przeskakujące w przypadku trackpadów. Emacs Mac Port wykorzystuje przewijanie oparte na pikselach, podobnie jak inne natywne aplikacje OS X, co jest znacznie płynniejsze i bardziej precyzyjne. Wpływa tylko na przewijanie gładzika, więc jeśli nie używasz myszy, nie będziesz jej potrzebować.
  • Gesty. Możesz ścisnąć, aby zwiększyć / zmniejszyć rozmiar tekstu. Ponownie, jeśli nie użyjesz myszy, nie zauważysz jej, a to prawdopodobnie tylko wymyślna funkcja.
  • Obsługa wydarzeń Apple. Możesz wysyłać i odbierać wydarzenia Apple z Emacs Lisp.
  • Usługa słownika. Stuknięcie trzema palcami spowoduje wyszukanie słowa pod kursorem w aplikacji Apple Dictionary, podobnie jak w innych aplikacjach OS X.
  • Integracja usług. Możesz otworzyć wybrany plik w Finderze z menu kontekstowego w uruchomionym Emacsie.
  • Natywne wyświetlanie SVG za pomocą Webkit zamiast librsvg. Według mojej wiedzy Webkit ma lepszą obsługę SVG, ale kto ogląda SVG w Emacsie?

Zauważysz, że większość z tych funkcji dotyczy jedynie integracji z systemem OS X i nie jest niezbędna do korzystania z Emacsa. Poza tym, port Mac Emacsa jest podobny do standardowego GNU Emacsa.

Niektóre z jego funkcji wracają do GNU Emacs, ale inne nigdy nie zostaną połączone, ponieważ są one dostępne wyłącznie dla OS X i nie są dostępne w darmowym alternatywnym GNUStep, co jest sprzeczne z polityką FSF, aby nie obsługiwać zastrzeżonych systemów operacyjnych ponad ich bezpłatne alternatywy. Ponadto, o ile dobrze pamiętam, autor tego zestawu łatek wykazał niewielkie zainteresowanie przywracaniem funkcji z powrotem, prawdopodobnie z tego pierwszego powodu.

Aquamaki

Aquamacs to mocno połatany widelec GNU Emacs. W przeciwieństwie do wszystkich powyższych, nie jest oparty na GNU Emacs, ale ma niezależne drzewo źródeł. Jest jednak regularnie synchronizowany z Emacsem w górę i ściśle śledzi wydania Emacsa. Jednak nieuchronnie pozostaje w tyle za pniem GNU Emacs.

Jest mocno zmodyfikowany, aby wyglądać i działać jak natywna aplikacja OS X. W szczególności obsługuje i zachęca do standardowych przypisań klawiszy OS X, np. Cmd+SDo zapisywania. Standardowe wiązania Emacsa są jednak nadal w większości dostępne.

Ponieważ jest to widelec, mocno zmodyfikowany, z zupełnie innymi celami i zasadami, żadna z jego funkcji nie zostanie połączona z GNU Emacs: większość tych modyfikacji jest sprzeczna z „duchem”, ideami i filozofią GNU Emacs.

TL; DR (lub: Co powinienem wybrać)

  • Jeśli jesteś statystykiem lub badaczem i nie chcesz samodzielnie konfigurować Emacsa: Zmodyfikowano Emacsa dla OS X.
  • Jeśli chcesz natywną aplikację OS X bardziej niż wszystko inne: Aquamacs
  • Jeśli chcesz Emacsa, ale z tak dobrą obsługą OS X, jak: Emacs Mac Port
  • Jeśli chcesz tylko Emacsa bez żadnych komplikacji: Emacs dla Mac OS X.

Moja osobista rada

Nigdy nie próbowałem Emacsa dla OS X Modified lub Aquamacs, ale nie widzę większego zastosowania w tym pierwszym (nie jestem statystykiem i sam mogę zainstalować AUCTeX). Poleciłbym również przeciw temu drugiemu: jest to rozwidlenie i chociaż zapewnia najlepszą integrację z OS X, nieuchronnie pozostaje w tyle i otrzymuje mniejsze wsparcie ze strony społeczności Emacsa. Wiele pakietów nie obsługuje Aquamacs, więc jeśli występują problemy, istnieje duża szansa, że ​​zostaniesz sam jako użytkownik Aquamacs.

Wypróbowałem Emacs Mac Port i chociaż płynne przewijanie, gesty i wydarzenia Apple są miłe, stwierdziłem, że te małe korzyści nie są warte kłopotów z utrzymaniem łatanej wersji GNU Emacs. YMMV, oczywiście, a jeśli zależy ci na dobrym wsparciu OS X i jeśli te funkcje ci się podobają, zdecydowanie powinieneś spróbować.

Obecnie używam tylko kompilacji migawek GNU Emacs. Mają one dość dobrą obsługę systemu OS X i są zdecydowanie najłatwiejsze do zainstalowania i najlepiej obsługiwane przez społeczność.

Kiedyś pobierałem je z Emacsa na Mac OS X, ale teraz używam Homebrew, ponieważ obsługuje on więcej bibliotek, zwłaszcza GNU TLS dla szyfrowanych połączeń sieciowych.

W sumie: użyj brew install emacs --HEAD --use-git-head --with-cocoa --with-gnutls --with-rsvg --with-imagemagick:).

księżycowy
źródło
8
Cóż - korzystanie z portu mac również nie jest takie trudne. Od github.com/railwaycat/emacs-mac-port : brew tap railwaycat/emacsmacporta następniebrew install emacs-mac
Rainer
3
„Port Mac” zdecydowanie nie był pierwszym Emacsem z natywną obsługą GUI OSX. Zamiast tego narodził się mniej więcej w czasie, gdy Emacs przeniósł się ze starego kodu „Carbon Emacs” do nowego kodu „Emacs.app” (ten ruch został wykonany częściowo dlatego, że Carbon był prawdopodobnie przestarzały przez Apple, częściowo dlatego, że nikt nie chciał utrzymać tego kodu , a częściowo dlatego, że kod „Emacs.app” ma możliwość obsługi GNUstep. Do dziś obsługa GNUstep jest zasadniczo bezużyteczna (chociaż czasami jest używana do śledzenia i naprawiania błędów w kodzie OSX podczas korzystania z systemu GNU / Linux )).
Stefan
6
Doskonały opis. Niektórzy użytkownicy OSX mogą być zainteresowani wiedzą, że Aquamacs ma wbudowaną obsługę natywnego sprawdzania pisowni OSX, która obejmuje listę zapisanych słów, które użytkownik wcześniej dodał do słownika. Moim zdaniem jest to jedna z kluczowych cech Aquamacs, której nie można powielić w innych wersjach Emacsa bez modyfikacji kodu źródłowego przed budowaniem. Jednak wolę aspell i nie używam myszy - więc sprawdzanie pisowni w OSX (choć bardzo fajne) nie jest powodem, dla którego przestawiłem się na Aquamacs.
prawnik
1
Oświadczenie: używam Linuksa i nie jestem pewien co do OSX, ale piszę e-maile w Emacsie i nie potrzebuję TLS; Wzywam (a raczej mu4e) msmtpdo wysyłania i mbsyncpobierania moich e-maili.
mbork
1
Mała nitka: Kompilacja ze źródła wymaga ./configure --with-ns, a nie --enable-ns.
Harald Hanche-Olsen
22

Kilka faktycznych poprawek dotyczących Aquamacs. Chociaż zachowuje własne drzewo źródłowe, jest bardzo regularnie łączone z Emacsem i prawie natychmiast z każdym wydaniem Emacsa. Aquamacs 3.1 pojawił się w dniu wydania Emacsa 24.4 (i zawierał wszystkie funkcje Emacsa 24.4 oraz podzbiór jego błędów). Aquamacs ma> 10 000 stałych użytkowników, jest aktywnie wspierany.

Port Mac Emacsa powstał znacznie później niż port Cocoa i Nextstep w Emacs; jest uważany za eksperymentalny, a oryginalny autor odradza redystrybucję poza swoim zestawem poprawek. W związku z tym wsparcie będzie znacznie bardziej ograniczone niż w przypadku innych rozwiązań. Jest to jednak ciekawa linia rozwoju, która ostatecznie zapewni dużą wartość społeczności, jeśli zostanie przyjęta przez programistów. Użytkownicy powinni jednak uważać się za „testerów wersji beta” i wnieść swój wkład dzięki dobrym raportom i łatkom.

Wartość Aquamacs leży w jego filozofii „gotowych do wdrożenia”: LaTeX, EmacsSpeaksStatistics i integracja z Macami są gotowe. Nie jest wymagana złożona konfiguracja.

Davidswelt
źródło
Emacs wypuszcza rzadko, więc jeśli Aquamacs łączy się dopiero po wydaniu, to rzadko. Zaktualizowałem jednak moją odpowiedź, aby usunąć tę część. Ponadto, chociaż sam Aquamacs jest aktywnie utrzymywany i wspierany, wsparcie społeczności jest raczej rzadkie. Niewiele pakietów stron trzecich wyraźnie obsługuje Aquamacs. W rzeczywistości wiele pakietów wyraźnie obsługuje tylko GNU Emacs, a nie jakiekolwiek widelce lub pochodne, w tym XEmacs lub Aquamacs.
lunaryorn
Czy masz źródło odradzające autorom portów Mac nie rozpowszechniać części poza ich zestawem poprawek?
lunaryorn
@lunaryorn: Wierzę, że w tym czasie było to prawdą, ale już nie. W mojej edycji usunąłem ten komentarz.
davidswelt
11

Wypróbowałem wszystkie powyższe opcje (nawet kran polecony przez Reinera w powyższym komentarzu) przez żadną nie działał dla mnie dobrze (problemy z przewijaniem gładzika, zawieszenie itp.). Jestem jednak bardzo zadowolony z widelca Yamamoto Mitsuharu, utrzymywanego przez stronę github kolei. Jest aktualny w stosunku do oficjalnej wersji GNU. Wystarczy pobrać .dmgobraz tutaj: https://github.com/railwaycat/emacs-mac-port/wiki/Downloads

NVaughan
źródło
8
Kiedy masz trochę wolnego czasu, rozszerz swoją odpowiedź i przedstaw różnice między tą konkretną wersją a wersją waniliową. W ten sposób twoja odpowiedź staje się czymś więcej niż komentarzem, a czytelnik nie będzie musiał zostawiać tej odpowiedzi i przeglądać stron takich jak: github.com/railwaycat/emacs-mac-port/blob/master/README-mac
lawlist
0

Do niedawna korzystałem z wersji Aquamacs. Głównym powodem, dla którego wolałem wersję Auquamacs podczas używania jej na Macu, było to, że mogłem używać Dragon Dictate z emacsem z domyślnymi ustawieniami. Podczas konfigurowania konfiguracji miałem problem z dyktowaniem zwykłej wersji emacsa. Poza tym i domyślnymi skrótami klawiszowymi nie było żadnej różnicy, z którą miałem do czynienia. Moje ustawienia załadowałyby się w ten sam sposób. Dzięki skrótom klawiszowym Przydatne jest kopiowanie, wycinanie, wklejanie i cofanie schowka za pomocą poleceń cmd-c, cmd-v, cmd-x, cmd-z, S-cmd-z po prostu przyzwyczajonych na komputerze Mac i był w stanie automatycznie zrobić to jedną ręką na klawiaturze Mac, ale możesz ustawić te w zwykłych emacach na cokolwiek lubisz, auquamacs nie jest potrzebny dla wielu z tych ustawień mac.

Jednak ostatnim razem, gdy sprawdziłem, emacs w Auquamacs nie był aktualizowany przez rok i wydawało się, że jest z tyłu. Otrzymywałem także ostrzeżenia o wygasłym certyfikacie. Nie byłem pewien, czy nadal jest utrzymywany. Nie wygląda na to, że został zaktualizowany na stronie. Byłem w stanie zainstalować zwykłą wersję Emacsa na Maca z Homebrew i zaktualizować mój plik init do ustawień dla Maca, które pozwalały na dyktowanie.

Ale ostatnio używałem linuxminta i myślę, że zamierzam się tego trzymać. Mój system jest znacznie cichszy, szybszy i bardziej płynny z Linuksem i łatwo jest dostosować wygląd pulpitu. Wprowadziłem kilka drobnych zmian w pliku inicjującym emacsa w wersji dla Linuksa, ale jest prawie taki sam. Jednak nie byłem w stanie znaleźć dobrego rozwiązania dla dyktowania w systemie Linux. Nie wiem, czy moja maszyna jest w stanie obsłużyć inny system operacyjny na maszynie wirtualnej tylko dla oprogramowania do dyktowania. Oprogramowanie do dyktowania to także świnia zasobów, ale to już inna kwestia. Byłoby miło, gdyby Dragon wydał wersję Dictate w systemie Linux.

Bryan Aneux
źródło