Como faço para manter o servidor EMACS em execução quando a janela atual é fechada (x) no Windows usando o Emacsw32?
Pergunta
estou a usar Emacsw32 (remendado) nas janelas. O EMACS está sendo executado no modo de servidor para que as chamadas subsequentes para o emacsclientw abrem arquivos na mesma sessão do servidor.
Eu tenho Cx cc Mapeado para tornar o quadro atual invisível e não matar o processo do servidor EMACS. Eu gostaria de clicar na janela X (Fechar) o botão para também apenas ocultar o quadro e não encerrar o processo do servidor como atualmente.
Alguma ideia ? Obrigado!
Solução
Claro, eu tenho um método de fazer isso. Pode haver refinamentos possíveis, mas este é um bom ponto de partida.
Primeiro, configurei uma variável e aconselho a função Kill-EMACS
(defvar bnb/really-kill-emacs nil)
(defadvice kill-emacs (around bnb/really-exit activate)
"Only kill emacs if the variable is true"
(if bnb/really-kill-emacs
ad-do-it)
(bnb/exit))
A função BNB/saída apenas torna o quadro invisível como o que você tem feito Cx cc.
Eu tenho então uma função adicional para sair corretamente do EMACS, se isso for necessário. Isso definirá a variável e a chamada de matança de chamadas da seguinte forma.
(defun bnb/really-kill-emacs ()
(interactive)
(setq bnb/really-kill-emacs t)
(kill-emacs))