The easiest solution I can think of is to use kill-buffer-query-functions
hook to prevent *Pymacs*
to be killed. Like this:
(defun my-pymacs-saver ()
(if (equal (buffer-name) "*Pymacs*")
(yes-or-no-p "Really kill *Pymacs* buffer? ")
t))
(add-hook 'kill-buffer-query-functions 'my-pymacs-saver)
It will ask you if you really want to kill *Pymacs*
buffer or not. You can even make it impossible to kill from keybinds by this:
(defun my-pymacs-saver ()
(if (equal (buffer-name) "*Pymacs*")
(progn
(message "NEVER kill *Pymacs*!")
nil)
t))
I use pymacs-terminate-services
to forcefully reload all modules. I have a function similar to pymacs-reload-rope
in http://www.emacswiki.org/emacs/AntonNazarov.
Probably you can add pymacs-terminate-services
to kill-buffer-hook
(locally in *Pymacs*
buffer) for more graceful termination. But I am not sure. For the rest of your question, I guess it’s better to ask/request in the Pymacs issue tracker.