Como posso emacsclient -a '' -n
criar um novo quadro apenas se já não houver um?
O problema com o -c
sinalizador é que ele cria um novo quadro sempre. O problema é que, se não houver um quadro aberto, ele será aberto na linha de comando.
Se eu puder verificar se há um quadro Emacs aberto no shell, posso ligar com ou sem, -c
dependendo disso, para obter o comportamento que desejo. Eu tentei:
$ emacsclient -a '' --eval '(frames-on-display-list)'
(#<frame F1 0xba2740>)
Eu sempre obtenho o mesmo resultado.
Eu poderia usar arquivos temporários ou pgrep, mas essas abordagens são muito propensas a erros.
Isso é semelhante a essa pergunta , mas não é uma duplicata, pois o OP estava satisfeito em ter que abrir um quadro antes de ligar emacsclient
.
elisp
,bash
esh
respostas.