Bagaimana saya bisa membuat emacsclient -a '' -n
membuat bingkai baru hanya jika belum ada?
Masalah dengan -c
bendera adalah bahwa ia menciptakan bingkai baru setiap waktu. Masalah tanpa itu adalah bahwa jika tidak ada bingkai terbuka itu akan terbuka di baris perintah.
Jika saya dapat memeriksa apakah ada bingkai Emacs terbuka dari shell, saya bisa menelepon dengan atau tanpa -c
bergantung pada itu untuk mendapatkan perilaku yang saya inginkan. Saya mencoba:
$ emacsclient -a '' --eval '(frames-on-display-list)'
(#<frame F1 0xba2740>)
Saya selalu mendapatkan hasil yang sama.
Saya bisa menggunakan file sementara atau pgrep, tetapi pendekatan itu sangat rawan kesalahan.
Ini mirip dengan pertanyaan ini , tetapi itu bukan duplikat, karena OP di sana puas dengan harus memiliki bingkai terbuka sebelum menelepon emacsclient
.
elisp
,bash
dansh
jawaban.