¿Cómo puedo hacer emacsclient -a '' -n
crear un nuevo marco solo si todavía no hay uno?
El problema con la -c
bandera es que crea un nuevo marco cada vez. El problema sin esto es que si no hay un marco abierto, se abrirá en la línea de comando.
Si puedo verificar si hay un marco abierto de Emacs desde el shell, puedo llamar con o sin -c
depender de eso para obtener el comportamiento que quiero. Lo intenté:
$ emacsclient -a '' --eval '(frames-on-display-list)'
(#<frame F1 0xba2740>)
Siempre obtengo el mismo resultado.
Podría usar archivos temporales o pgrep, pero esos enfoques son muy propensos a errores.
Esto es similar a esta pregunta , pero no es un duplicado, ya que el OP allí estaba satisfecho con tener un marco abierto antes de llamar emacsclient
.
elisp
,bash
ysh
respuestas.