Я на работе, на машине Linux. Я ssh в машину альфа, с переадресацией X.
tomfuture@work$ ssh -X alpha
Затем я запускаю X-Windows Emacs.
tomfuture@alpha$ emacs
Это появляется на моем локальном дисплее. Я делаю некоторую работу и иду домой, оставляя Emacs запущенным. На моей машине с Linux я могу подключиться к альфе и открыть новый фрейм emacs, подключенный к тому же emacs.
tomfuture@home$ ssh -X alpha
tomfuture@alpha$ emacsclient -c
Теперь у меня есть два работающих фрейма emacs, один на работе и один дома, оба подключены к одному и тому же emacs, работающему на альфа. Из дома, как я могу:
- закрыть раму на работе? или же
- закрыть emacs полностью?
Спасибо!
C-x C-c
(что убивает Emacs) оставляет фреймы открытыми на других экранах, то эти фреймы не были нарисованы Emacs, который вы убиваете. Возможно ли, что вы используете два Emacs?ps aux
перечисляет только один процесс Emacs.M-x describe-key C-x C-c
говорит, чтоC-x C-c
связан сsave-buffers-kill-terminal
. Эта функция описывается как «Предложить сохранить каждый буфер, а затем уничтожить текущее соединение. Если в текущем кадре нет клиента, уничтожьте сам Emacs». Я не уверен, что значит для фрейма иметь клиента, но не похоже, чтоC-x C-c
он предназначен для уничтожения emacs.C-x C-c
кsave-buffers-kill-emacs
поместив этот код в конец вашего~/.emacs
файла запуска:(define-key global-map (kbd "C-x C-c") 'save-buffers-kill-emacs)
. Я подозреваю, что эта функцияsave-buffers-kill-terminal
вызывает поведение, которое вам не нравится.save-buffers-kill-emacs
делает работу (после предупреждения, что он собирается удалить другое соединение, что приятно). Спасибо!