Comment puis-je emacsclient -a '' -n
créer un nouveau cadre uniquement s'il n'y en a pas déjà un?
Le problème avec le -c
drapeau est qu'il crée un nouveau cadre à chaque fois. Le problème sans cela est que s'il n'y a pas de cadre ouvert, il s'ouvrira dans la ligne de commande.
Si je peux vérifier s'il y a un cadre Emacs ouvert à partir du shell, je peux appeler avec ou sans en -c
fonction de cela pour obtenir le comportement que je veux. J'ai essayé:
$ emacsclient -a '' --eval '(frames-on-display-list)'
(#<frame F1 0xba2740>)
J'obtiens toujours le même résultat.
Je pourrais utiliser des fichiers temporaires ou pgrep, mais ces approches sont très sujettes aux erreurs.
C'est similaire à cette question , mais ce n'est pas un doublon, car l'OP y était satisfait d'avoir à avoir une trame ouverte avant d'appeler emacsclient
.
elisp
,bash
et dessh
réponses.