
我問的原因是,它們在大多數情況下看起來都很相似,除了使用 Thunderbird 外部編輯器擴充功能(編輯器指定為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,它是 `server.el' 中的互動式編譯 Lisp 函式。
它綁定到 Cx#。
(伺服器編輯和可選 ARG)
切換到下一個伺服器編輯緩衝區;對當前緩衝區說“完成”。如果伺服器緩衝區是目前的,則它被標記為「完成」並可以選擇儲存。如果緩衝區在客戶端請求之前不存在,也會被終止。當客戶端的所有緩衝區都標記為「完成」時,客戶端會收到通知。
諸如 MH 檔案之類的臨時檔案始終會被保存和備份,不會有任何問題。 (變數“make-backup-files”,如果為零,仍然會禁止備份;您可以在特定緩衝區中本機設定它以防止對其進行備份。)變數“server-temp-file-regexp”控制哪些文件名被認為是暫時的。
如果使用前綴參數調用,或者沒有正在運行的伺服器進程,則啟動伺服器進程,僅此而已。由 Cx # 呼叫。 Cx # 執行指令 server-edit,這是「server.el」中的互動式編譯 Lisp 函式。
對於 Cx Cc 也類似
Cx Cc 執行指令 save-buffers-kill-terminal,它是「files.el」中的互動式編譯 Lisp 函式。
它綁定到 Cx Cc, 。
(保存緩衝區終止終端和可選 ARG)
提議保存每個緩衝區,然後終止目前連線。如果目前框架沒有客戶端,則殺死 Emacs 本身。
使用前綴 ARG,靜默保存所有檔案存取緩衝區,然後終止。
如果 emacsclient 啟動時帶有要編輯的檔案名稱列表,則只會要求儲存這些檔案。