Vous pouvez régler la commande du clavier C-x k pour qu'il marque tampons clients comme fait et tue tampons normaux.
Je récupéré sans vergogne cet extrait de code de l'entrée Emacs Client dans le Emacs Wiki:
(add-hook 'server-switch-hook
(lambda()
(when (current-local-map)
(use-local-map (copy-keymap (current-local-map))))
(when server-buffer-clients
(local-set-key (kbd "C-x k") 'server-edit))))
Bien que cela ne permet pas d'autres façons de tampons tuer (tels que M-x list-buffers
), il devrait être sur la en respectant le comportement du client Emacs attendu par certains scripts shell.
Voici un extrait du fichier server.el dans votre distribution Emacs qui pourrait jeter un peu de lumière sur ce que je veux dire:
;; When you finish editing a Server buffer, again call server-edit
;; to mark that buffer as done for the client and switch to the next
;; Server buffer. When all the buffers for a client have been edited
;; and exited with server-edit, the client "editor" will return
;; to the program that invoked it.
Plus tard, il y a un avertissement explicite qu'un tampon shouldn « t tuer, mais libéré (au moins est-ce que je l'interprète):
;; Ask before killing a server buffer.
;; It was suggested to release its client instead,
;; but I think that is dangerous--the client would proceed
;; using whatever is on disk in that file. -- rms.
Notez que lorsque vous utilisez emacsclient pour modifier un fichier, Emacs vous dit d'utiliser Cx #' pour dire au serveur lorsque vous J'ai fini avec le fichier. Si vous faites cela (plutôt que «C-x k»), la question ne vous sera pas posée. – phils