Wie kann ich emacsclient -a '' -n
nur dann einen neuen Rahmen erstellen, wenn noch keiner vorhanden ist?
Das Problem mit dem -c
Flag 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
,bash
undsh
Antworten.