Di recente ho acquistato il mio primo Mac in un decennio e sono in procinto di configurarlo. Sono un utente Emacs e ho deciso di voler solo Emacs regolari e non Aquamacs in modo da poter utilizzare la mia configurazione esistente da altri sistemi operativi. Ho provato a seguire molte how-to che ho trovato online (come questo , questo e questo dal sito da cui ho scaricato Emacs ), e ho provato a combinare i pezzi in vari modi, ma non ho mai ho portato le cose in uno stato anche avvicinandomi a ciò a cui sono abituato / sperando:
- Un demone Emacs inizia a funzionare all'avvio o appena ne ho bisogno ; o va bene. Tutti i nuovi frame Emacs sono supportati dallo stesso server.
- Quando apro un file di testo dal Finder, il file si apre in Emacs, se possibile in una cornice grafica esistente.
- Se eseguo Emacs.app, il sistema riutilizza il demone emacs in esecuzione in background invece di avviare una nuova istanza e aprirne una nuova. ( punta del cappello )
- Quando eseguo Emacs da un terminale, il terminale fa i suoi affari senza aspettare che finisca con Emacs (a meno che io non usi "-nw")
- AFAIK in nessun momento durante le operazioni sopra descritte Emacs dovrebbe finire in uno stato ("modalità di modifica del server?") In cui mi sta aspettando di digitare
C-x #
, anche se non ho una profonda comprensione di questo. - (Lo considero un bonus) C'è un modo per me di invocare Emacs da un terminale in modo che Emacs riutilizzi un frame esistente, se possibile.
Come posso configurare Emacs per comportarsi in questo modo?
Sono particolarmente perplesso nel far sì che il Finder apra le cose in Emacs nel modo che desidero (n. 2), dal momento che le guide che ho trovato generalmente creano un certo numero di alias, script di Apple, script di bash, ecc. E non sono sicuro che voglio dire al Finder da usare per aprire i file di testo.
Grazie!
A. @lawlist chiede "Viene aperto un nuovo frame per impostazione predefinita quando si apre un nuovo file dal terminale anche se esiste un frame esistente?" La risposta è che se avvio un server all'avvio come descritto qui , apro un frame e quindi apro un file digitando /Applications/Emacs.app/Contents/MacOS/bin/emacsclient -n <whatever>
, posso ottenere il file da aprire in un frame esistente. Se non ci sono frame attualmente aperti devo usare "-nc" o quando provo ad aprire un file non succede nulla.
B. @lawlist chiede: "Vuoi che il demone sia in esecuzione al login, o sarebbe sufficiente caricare Emacs manualmente dopo il login?" L'esecuzione manuale andrebbe bene.
M-x server-start
avvierà manualmente il server in modo che emacsclient
possa comunicare con esso. Ho inserito il (server-start)
mio init.el
file invece di utilizzare un demone al momento del login - tuttavia, molte persone preferiscono l'opzione di accesso al demone. E, naturalmente, il .emacs
file sarebbe un posto adatto per (server-start)
.
ns-find-file
- che si attiva automaticamente quando un file è associato a Emacs.app. La mia funzione di intercettazione del file nei collegamenti sopra modifica anche ns-find-file
se questo è qualcosa che ti interessa. Certo, hai bisogno di Emacs costruito --with-ns
.