[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: eval-print-last-sexp: "Selecting deleted buffer" error when the curr
Re: eval-print-last-sexp: "Selecting deleted buffer" error when the current buffer is killed evaluating the expression
Fri, 30 Jul 2021 08:58:34 +0300
> Date: Fri, 30 Jul 2021 00:55:51 +0200
> From: Matthew White <firstname.lastname@example.org>
> I tumbled on the error in the subject, "Selecting deleted buffer",
> evaluating the following line in the "*scratch*" buffer with C-j:
> (kill-buffer (current-buffer))
> When the other buffer isn't read-only, suppose "*foo*" is selected
> after killing the current buffer "*scratch*", the error "Selecting
> deleted buffer" appears into the echo area and the return value of
> the evaluation is printed into the other buffer "*foo*".
> If the other buffer is "*Messages*", which is read-only, the error
> "Buffer is read-only: #<buffer *Messages*>" will appear instead.
> I'd like to discuss the possibility to enforce printing the output
> either to the initial current buffer when eval-print-last-sexp has
> been called, or to the echo area when the prefix '-' is given. If
> the initial current buffer (aka standard-output) is killed, during
> the evaluation of the expression, we fall back to the echo area as
> the output medium.
Could you please tell what are the real-life situations where this
problem happens and causes trouble? Killing the current buffer this
way is unusual, so why isn't what we have now sufficient? You tried
to insert something into a killed buffer, Emacs told you it cannot do
that; why is that a problem?
IME, trying to "fix" such obscure problems causes problems of its own
that we then get to rectify for several releases in the future, so the
net gains are very small if there are any.