Jak mogę uruchomić graficzną Emacsa Mac OSX w trybie demona?


24

Skrócony formularz: chcę uruchomić wersję Emacsa dla Mac OSX, którą można znaleźć na stronie http://emacsformacosx.com/ jako demon, z klientami graficznymi i tekstowymi łączącymi się z nim w razie potrzeby.

Szczegółowo, oto przepływ pracy, który chcę:

  1. Podczas logowania uruchom, /Applications/Emacs.app/Contents/MacOS/Emacs --daemonaby uruchomić emacsa jako demona. Wiem już, jak to zrobić .

  2. Podczas uruchamiania emacsa z lokalnego terminala chcę jedno z tych:

    1. Jeśli uruchomię emacsz lokalnego wiersza polecenia, otwórz nową ramkę z wybranym plikiem.
    2. Jeśli # 1 nie jest możliwe, przynajmniej jeśli uruchomię emacsclientz wiersza poleceń, otwórz nową ramkę z wybranym plikiem.
  3. Podczas uruchamiania emacsa ze zdalnego terminala chciałbym, aby emacs w trybie tekstowym został uruchomiony, podłączony do procesu demona.

  4. Jeśli uruchomię, Emacs.appużyj ponownie demona emacs działającego w tle zamiast uruchamiać nowe wystąpienie i otwierać w nim nowe okno.

Do tej pory jestem w stanie osiągnąć tylko # 1 i # 2.2 powyżej, ale to są łatwe części. # 3 i # 4 to rzeczy, które są najbardziej potrzebne, aby to zadziałało. Czy ktoś wie, jak to osiągnąć?


1
Dla innych, którzy znajdą to pytanie: możesz również usr M-x server-startwprowadzić emacsa uruchomionego bez --daemon w tryb serwera. Dobre pytania, BTW.
dmckee,

1
... lub włóż (server-start).emacs, aby zaczął się po uruchomieniu emacsa
Doug Harris

Czy ktoś może wyjaśnić, jak zrobić # 1? Czy zrobiłbyś to po prostu jako login?
Charlie Flowers,

Odpowiedzi:


15
  1. Masz to załatwione
  2. Tak, będziesz chciał użyć emacsclient. Aby uzyskać nową ramkę, dodaj opcję -c. Mam alias, aby przyspieszyć i powiedzieć emacsclient, aby nie czekał na powrót serwera emacs:

    alias em='emacsclient -n'
    
  3. emacsclient -nw
  4. Nie jestem pewien co do tego. Uruchamiam Emacsa raz i zawsze ładuję nowe pliki w emacsie lub używając mojego emaliasu.

Aktualizacja:

Sprawdź tę wskazówkę dokumentującą, jak używać Dziobaka do tworzenia opakowania aplikacji wokół emacsclient. Następnie możesz użyć „Otwórz za pomocą ...”, aby uruchomić za pomocą nowego opakowania aplikacji.


Tak, to prawdziwa sztuczka, prawda? Ponieważ chcę, aby wszystkie otwarte połączenia systemu operacyjnego korzystały z uruchomionych emacs, niezależnie od tego, czy działam w kontekście terminala, czy kontekstu GUI. Będę szukał dalej.
Chris R

Znaleziono referencję do Dziobaka i zaktualizowałem moją odpowiedź.
Doug Harris,

6
Czy to jest rozwiązane? Jak udało Ci się połączyć Emacs.app z demonem?
milkypostman

Chcę również poznać odpowiedź na pytanie 4 :)
jkp


1

Dla 4. włóż to do .emacs:

(setq ns-pop-up-frames nil)

Rozwiązanie tworzenia aplikacji na Maca (z dziobakiem) nie działa, ponieważ Mac nie otworzy dwukrotnie tej samej aplikacji.


1
Jeśli użyjesz „open -n”, możesz otworzyć nowe wystąpienie aplikacji, nawet jeśli jest już uruchomiona. Spróbuj tego w terminalu: otwórz -n -a Emacs.app somefile.txt
Jörgen Lundberg

Tak, ale otwiera nowe okno, którego nie chcę
juanmirocks

Może nie rozumiem, czego chcesz, ale jeśli nie chcesz, aby tworzyło nowe okno, ale używało już istniejącego, pomiń „-n”.
Jörgen Lundberg

Tak, nie chcę tworzyć nowego okna. open -a Emacs.appjest z pewnością tym, co robię, ale aby otworzyć się w tym samym tle instancji / demona istniejącego emacsa, muszę pisać (setq ns-pop-up-frames nil)w swoim, .emacstak jak napisałem w odpowiedzi. W przeciwnym razie i tak tworzy nowe okno, z lub bez -n.
juanmirocks
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.