2013-09-28 16 views
10

Come si chiude un frame emacsclient senza uccidere il server/demone?Come chiudere un frame gui emacsclient senza uccidere il server

Fare C-x C-c o C-x 5 0 nel gui uscirà sia dal frame che dal server (e da altri client), mentre questo appena esce dal frame corrente quando viene eseguito dal terminale.

(Ps: La mia versione è emacs 24.2, gtk ho provato senza init-file per vedere se veniva da mia configurazione, ma i risultati erano gli stessi.)

+0

Per molto tempo ho avuto problemi con i build gtk di emacs e passati a un altro toolkit. I membri del canale #emacs su freenode hanno notato che questo è un bug di vecchia data da qualche parte in gtk che causa il crash del server.Prova una build usando il lucido toolkit. –

risposta

7

Si fa dire nel minibuffer quando emacsclient inizia, che "Quando si esegue un buffer, digitare Cx #".

+0

'C-x #' uccide anche il server quando viene realizzato dalla GUI – AdrieanKhisbe

+3

Non lo fa certamente per me. – Dolda2000

+0

So che non è previsto. :/ Quale versione stai usando? – AdrieanKhisbe

4

Avvio del emacsclient con -n/--no-wait bandiera sarà:

Non attendere che il server per tornare

Non sarà necessario chiudere il cliente in quel caso.

E se si deve chiudere emacsclient basta eliminare il buffer il server rimarrà intatto.

6

Penso che il punto chiave qui è che è necessario avviare il server in modalità daemon. Se il server viene eseguito in un processo emacs esistente, ad esempio se si dispone di (server-start) nel file init, il server muore con il processo emacs.

ci sono un paio di modi di avviare il server in modalità daemon:

  • chiamata emacs con l'opzione della riga --daemon di comando
  • chiamata emacsclient con l'opzione della riga di comando, che sarà a tutti gli effetti run emacs --daemon per te quindi prova a collegarti ad esso

Una volta che hai il server in modalità daemon, dovresti essere in grado di chiudere qualsiasi frame e il demone continuerà a sedersi e ad attendere ulteriori connessioni.

0

Sto usando entrambi Debian con i3 e OSX. Di solito esco dal frame della GUI emacsclient dal collegamento alla finestra di chiusura del gestore di finestre. Ad esempio, in OSX, uso "Command + w" per chiudere il frame della GUI del client senza uccidere il server, e in i3, uso "Super + Shift + q" (la finestra di chiusura predefinita di i3) per uscire dal frame del client .

2

Perché è stato eseguito (server-start) da una cornice esistente, che fanno da cornice non è un telaio emacsclient, e chiudendo l'ultimo fotogramma quali ottiene evidentemente lo stesso trattamento C-x C-c: uscirà Emacs.

Se si è utilizzato emacs --daemon, probabilmente utilizzando il trucco ALTERNATE_EDITOR='', non si avrebbe questo problema; potresti semplicemente usare emacsclient -n -c per aprire una cornice della GUI, e dopo averlo chiuso il demone si sarebbe semplicemente seduto in attesa che tu aprissi un nuovo frame, sia esso grafico o basato sul terminale.

+0

Ho anche avviarlo tramite systemd, come descritto in WikEmacs: http://wikemacs.org/wiki/Emacs_server#Adding_To_OS_Startup – MKesper

Problemi correlati