Niedawno kupiłem pierwszego Maca od dekady i właśnie go konfiguruję. Jestem użytkownikiem Emacsa i zdecydowałem, że chcę tylko zwykłego Emacsa, a nie Aquamaca, aby móc korzystać z mojej istniejącej konfiguracji z innych systemów operacyjnych. Próbowałem śledzić wiele poradników, które znalazłem w Internecie (takich jak ten , ten i ten ze strony, z której pobrałem Emacsa ) i próbowałem łączyć te elementy na wiele sposobów, ale nigdy wprowadziłem rzeczy w stan zbliżający się do tego, do czego jestem przyzwyczajony / mam nadzieję:
- Demon Emacsa zaczyna działać albo przy starcie, albo tak szybko, jak go potrzebuję ; albo jedno jest w porządku. Wszelkie nowe ramki Emacsa są wspierane przez ten sam serwer.
- Kiedy otwieram plik tekstowy z Findera, plik otwiera się w Emacsie, jeśli to możliwe, w istniejącej ramce graficznej.
- Jeśli uruchomię Emacs.app, system ponownie użyje demona emacs działającego w tle zamiast uruchamiać nowe wystąpienie i otwierać w nim nowe okno. ( czapka )
- Kiedy uruchamiam Emacsa z terminala, terminal wykonuje swoją działalność bez czekania, aż skończę z Emacsem (chyba że użyję „-nw”)
- AFAIK w żadnym momencie podczas operacji opisanych powyżej Emacs nie powinien skończyć w stanie („tryb edycji serwera?”), W którym czeka na mnie napisanie
C-x #
, chociaż nie mam głębokiego zrozumienia tego. - (Uznałbym to za bonus) Jest jakiś sposób na wywołanie Emacsa z terminala, aby Emacs ponownie wykorzystał istniejącą ramkę, jeśli to możliwe.
Jak skonfigurować Emacsa, aby zachowywał się w ten sposób?
Jestem szczególnie zakłopotany tym, że Finder otwierał rzeczy w Emacsie w taki sposób, w jaki chcę (# 2), ponieważ znalezione przewodniki generalnie tworzą wiele aliasów, skryptów Apple, skryptów bash itp. I nie jestem pewien którego chcę powiedzieć Finderowi, aby otwierał pliki tekstowe.
Dzięki!
A. @lawlist pyta: „Czy nowa ramka jest domyślnie otwierana po otwarciu nowego pliku z terminala, nawet jeśli istnieje już ramka?” Odpowiedź jest taka, że jeśli uruchomię serwer podczas uruchamiania zgodnie z opisem tutaj , otworzę ramkę, a następnie otworzę plik, wpisując /Applications/Emacs.app/Contents/MacOS/bin/emacsclient -n <whatever>
, mogę otworzyć plik w istniejącej ramce. Jeśli aktualnie nie ma otwartej ramki, muszę użyć „-nc” lub gdy próbuję otworzyć plik, nic się nie dzieje.
B. @lawlist pyta: „Czy chcesz, aby demon działał podczas logowania, czy wystarczy ładowanie Emacsa ręcznie po zalogowaniu?” Uruchamianie ręczne byłoby w porządku.
M-x server-start
ręcznie uruchomi serwer, aby emacsclient
mógł się z nim komunikować. Umieściłem (server-start)
w swoim init.el
pliku zamiast używania demona przy logowaniu - jednak wiele osób woli opcję logowania demona. Oczywiście .emacs
plik byłby odpowiednim miejscem dla (server-start)
.
ns-find-file
- który jest aktywowany automatycznie, gdy plik jest powiązany z Emacs.app. Moja funkcja pliku przechwytującego w powyższych linkach również modyfikuje, ns-find-file
czy to Cię interesuje. Oczywiście potrzebujesz zbudowanego Emacsa --with-ns
.