Jak mogę emacsclient -a '' -n
utworzyć nową ramkę, tylko jeśli jeszcze jej nie ma?
Problem z -c
flagą polega na tym, że za każdym razem tworzy nową ramkę. Problem bez tego polega na tym, że jeśli nie ma otwartej ramki, otworzy się w wierszu poleceń.
Jeśli mogę sprawdzić, czy z powłoki jest otwarta ramka Emacsa, mogę zadzwonić z tym lub bez niego -c
, aby uzyskać pożądane zachowanie. Próbowałem:
$ emacsclient -a '' --eval '(frames-on-display-list)'
(#<frame F1 0xba2740>)
Zawsze otrzymuję ten sam wynik.
Mógłbym użyć plików tymczasowych lub pgrep, ale te podejścia są bardzo podatne na błędy.
Jest to podobne do tego pytania , ale nie jest to duplikat, ponieważ OP był zadowolony z konieczności otwarcia ramki przed wywołaniem emacsclient
.
elisp
,bash
ish
odpowiedzi.