Como faço para manter o servidor EMACS em execução quando a janela atual é fechada (x) no Windows usando o Emacsw32?

StackOverflow https://stackoverflow.com/questions/2001485

  •  18-09-2019
  •  | 
  •  

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!

Foi útil?

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))
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top