When running emacs in daemon with a client and I hit C-x k, it says: Emacs buffer still has clients. Are you sure you want to quit?
But when using C-x #, it exits immediately.
I don't understand the difference. Why doesn't C-x k just behave normally in the first place, if its in a client?
I found this snippet that's supposed to make C-x k behave properly but I don't understand the difference.
Furthermore, when an emacs client starts up, it starts with the previous buffer for a few seconds then opens up the new buffer. Isn't the point of emacs server to speed up the initial start up time? Why does it do this / how can I fix it? On initial load, it starts with scratch for a few seconds.
I can't write a better explanation of C-x# than Emacs already gives you. Just type C-hkC-x#
I assume that C-xk warns you because you're not using the mechanism for telling the client explicitly that you're done, and as you might be trying to kill the buffer from any Emacs frame (and unless you're running Emacs as a daemon, there are going to be non-client frames), it makes sure you're aware that the buffer is associated with a client somewhere.
The query itself comes from
server-kill-buffer-query-function
which is added tokill-buffer-query-functions
, and probably has no way of telling where the kill was issued from. It has the following comments: