背景: 使用Emacs 24.2.1。
我用这个别名启动Emacs客户端和服务器:
emacsclient -nw -a="" -c "$@"
我想在更新之后重新加载我的.emacs
文件而不让Emacs服务器终止当前客户端。基本上,现在,我会使用.emacs
编辑emacsclient
文件。然后,我做M-x load-file
。然后它问
The current server still has clients; delete them? (yes or no)
说是会重新加载.emacs
文件,但也会终止所有当前客户端,这会强制我的客户端关闭,因为它刚刚终止。
有解决方法吗?
答案 0 :(得分:1)
我在Emacs源代码中找到此消息的唯一地方是函数server-start
:
(defun server-start (&optional leave-dead inhibit-prompt)
...
(when (or (not server-clients)
;; Ask the user before deleting existing clients---except
;; when we can't get user input, which may happen when
;; doing emacsclient --eval "(kill-emacs)" in daemon mode.
(cond
((and (daemonp)
(null (cdr (frame-list)))
(eq (selected-frame) terminal-frame))
leave-dead)
(inhibit-prompt t)
(t (yes-or-no-p
"The current server still has clients; delete them? ")))) ...
我会假设您在.emacs中的某个地方执行server-start
,这导致了问题。如果是这种情况,您将删除表达式并重新加载.emacs应该按预期工作。