Come posso emacsclient -a '' -n
creare un nuovo frame solo se non ce n'è già uno?
Il problema con la -c
bandiera è che crea sempre una nuova cornice. Il problema senza di esso è che se non ci sono frame aperti, si aprirà nella riga di comando.
Se riesco a verificare se esiste un frame Emacs aperto dalla shell, posso chiamare con o senza a -c
seconda di quello per ottenere il comportamento che desidero. Provai:
$ emacsclient -a '' --eval '(frames-on-display-list)'
(#<frame F1 0xba2740>)
Ottengo sempre lo stesso risultato.
Potrei usare file temporanei o pgrep, ma quegli approcci sono molto inclini agli errori.
Questo è simile a questa domanda , ma non è un duplicato, dal momento che l'OP era soddisfatto della necessità di avere un frame aperto prima di chiamare emacsclient
.
elisp
,bash
esh
risposte.