Как я могу заставить emacsclient просто открыть окно для существующего демона emacs, не открывая новый файл - PullRequest
10 голосов
/ 13 июля 2010

Я использую демон emacs для сохранения моего сеанса emacs, даже если мне нужно перезагрузить компьютер, на котором я запускаю свой X-сервер, или если я хочу получить доступ к тому же сеансу с другого компьютера.Это работает очень хорошо, но при восстановлении сеанса я хотел бы просто запустить "emacsclient --create-frame --no-wait", чтобы подключиться к демону без открытия нового файла.Это не даст мне уйти, не указав имя файла.

Я пытался использовать --eval для выполнения функции, а не для открытия файла, но окно просто исчезает, когда оценка завершена.

(Emacs 23.1 через backports в Debian GNU / Linux 5.0.)

Ответы [ 4 ]

13 голосов
/ 13 июля 2010

Из справки, предоставленной emacsclient, у вас есть несколько вариантов. Во-первых, это уже упомянутый, который emacsclient -c. Это попытается создать фрейм, связанный с демоном emacs. Преимущество этого состоит в том, что если DISPLAY не установлен, то он откроет emacs в терминале.

Что приводит нас к следующему лучшему варианту (особенно если вы входите удаленно): emacsclient -t, который заставляет emacs открываться в режиме терминала, даже если установлен DISPLAY.

Также имейте в виду, что вы также можете настроить отображение из командной строки. Я использую это часто при входе в систему удаленно из VNC. Полная команда будет emacsclient -d DISPLAY -c

6 голосов
/ 13 июля 2010

emacsclient -c у меня работает.

3 голосов
/ 13 июля 2010

Если вы используете emacs из командной строки, вы также можете рассмотреть emacsclient -t

3 голосов
/ 13 июля 2010

emacsclient -n -e "(make-frame)"

Флаг -n означает, что emacsclient не ждет и экземпляр emacs не разрушает фрейм.

...