Як я можу emacsclient -a '' -n
створити новий кадр, лише якщо його вже немає?
Проблема з -c
прапором полягає в тому, що він щоразу створює новий кадр. Проблема без цього полягає в тому, що якщо немає кадру, він відкриється в командному рядку.
Якщо я можу перевірити, чи є відкритий кадр Emacs з оболонки, я можу зателефонувати з або без -c
цього, щоб отримати поведінку, яку я хочу. Я намагався:
$ emacsclient -a '' --eval '(frames-on-display-list)'
(#<frame F1 0xba2740>)
Я завжди отримую однаковий результат.
Я міг би використовувати тимчасові файли або pgrep, але ці підходи дуже схильні до помилок.
Це схоже на це питання , але воно не є дублікатом, оскільки там Оперативна служба була задоволена тим, що перед викликом потрібно було відкрити кадр emacsclient
.
elisp
,bash
іsh
відповіді.