O script a seguir funciona para ambos com gnuclient ou emacsclient , embora sua docstring (original) diga "Kill buffer, levando o gnuclient em conta." ... de emacswiki: KillKey
(defun my-kill ()
"Kill buffer, taking gnuclient into account."
(interactive)
(if (buffer-modified-p)
(error "Buffer has unsaved changes")
(if server-buffer-clients
(server-edit)
(kill-buffer (current-buffer)))))
O acima aborda a questão, como solicitado, mas além disso, tenho trabalhado em torno do problema usando o servidor do emacs e emacsclient (vs. gnuclient, como mencionado na pergunta).
Com essa nova combinação servidor / cliente, eu posso abrir arquivos no emacs, a partir de um shell bash, como se fossem abertos (visitados) dentro do próprio emacs.
Em um script de inicialização, por exemplo. chamado e
, este comando básico faz o truque; não há mais avisos irritantes quando eu mato o buffer ...
Também tem a vantagem de permitir recursos como restaurar o VisibleBookmarks , etc para funcionar para esse arquivo / buffer.
emacsclient -e "(find-file \"$1\")" &>/dev/null
Eu acho que algo similar poderia ser feito com o servidor / cliente GNU, mas eu gosto bastante do emacsclient , então eu vou correr com ele.