Wie kann ich emacsclient -a '' -nnur dann einen neuen Rahmen erstellen, wenn noch keiner vorhanden ist?
Das Problem mit dem -cFlag ist, dass es jedes Mal einen neuen Frame erstellt. Das Problem ohne es ist, dass wenn kein Frame geöffnet ist, er in der Befehlszeile geöffnet wird.
Wenn ich überprüfen kann, ob ein offener Emacs-Frame in der Shell vorhanden ist, kann ich mit oder ohne davon aufrufen -c, um das gewünschte Verhalten zu erhalten. Ich habe es versucht:
$ emacsclient -a '' --eval '(frames-on-display-list)'
(#<frame F1 0xba2740>)
Ich bekomme immer das gleiche Ergebnis.
Ich könnte temporäre Dateien oder pgrep verwenden, aber diese Ansätze sind sehr fehleranfällig.
Dies ähnelt dieser Frage , ist jedoch kein Duplikat, da das dortige OP damit zufrieden war, vor dem Aufruf einen Frame geöffnet zu haben emacsclient.
elisp,bashundshAntworten.