
Причина, по которой я спрашиваю, в том, что в большинстве случаев они кажутся похожими, за исключением случая использования расширения Thunderbird External Editor Extension (с редактором, обозначенным как emacsclient -c
). Закрытие фрейма, созданного с помощью этого экземпляра emacsclient, с помощью C-x C-c
( C-x #
иногда не работает?) также уничтожит буфер, связанный с этим фреймом (необычное поведение emacsclient).
И, в общем, C-x C-c
просто закроет фрейм, если в этом фрейме не будет посещен другой буфер -- после этого C-x C-c
попытается закрыть все emacs. Как мне попытаться понять это поведение?
решение1
В Emacs вы можете получить справку по любой клавише, нажав Ch k и затем введя комбинацию клавиш, о которой вы хотите узнать. Нажатие Ch k Cx # возвращает это:
Cx # запускает команду server-edit, которая представляет собой интерактивную скомпилированную функцию Lisp в `server.el'.
Он привязан к Cx #.
(редактирование сервера и необязательный ARG)
Переключиться на следующий буфер редактирования сервера; сказать «Готово» для текущего буфера. Если буфер сервера является текущим, он помечается как «Готово» и опционально сохраняется. Буфер также уничтожается, если он не существовал до того, как клиенты запросили его. Когда все буферы клиента помечаются как «Готово», клиент уведомляется.
Временные файлы, такие как файлы MH, всегда сохраняются и копируются без каких-либо вопросов. (Переменная 'make-backup-files', если она равна nil, все равно запрещает резервное копирование; вы можете задать ее локально в определенном буфере, чтобы запретить резервное копирование.) Переменная 'server-temp-file-regexp' управляет тем, какие имена файлов считаются временными.
Если вызывается с префиксным аргументом или если нет запущенного процесса сервера, запускает процесс сервера и все. Вызывается с помощью Cx #. Cx # запускает команду server-edit, которая является интерактивной скомпилированной функцией Lisp в 'server.el'.
Аналогично для Cx Cc
Cx Cc запускает команду save-buffers-kill-terminal, которая представляет собой интерактивную скомпилированную функцию Lisp в `files.el'.
Он связан с Cx Cc, .
(сохранить-буферы-убить-терминал и необязательно ARG)
Предложить сохранить каждый буфер, затем убить текущее соединение. Если текущий фрейм не имеет клиента, убить сам Emacs.
С префиксом ARG тихо сохраняет все буферы посещений файлов, а затем уничтожает их.
Если emacsclient был запущен со списком имен файлов для редактирования, то будет предложено сохранить только эти файлы.