A melhor maneira é usar (server-running-p) do pacote server . Por exemplo
(require 'server)
(unless (server-running-p)
(server-start))
Estou executando o Emacs 23 no Debian Squeeze. ~/.emacs não contém nenhum comando server -related.
Eu inicio o Emacs e digito C-h v server-mode , que retorna nil , já que nenhum servidor está rodando. Em seguida, eu digito M-x start-server , que inicia um servidor Emacs na instância em execução do Emacs.
No entanto, a variável server-mode ainda é nil quando eu a verificar novamente. Somente depois de executar M-x server-mode , a variável server-mode obterá um valor de t . Isso é um bug ou estou fazendo algo errado?
O modo de servidor funciona bem depois de inserir start-server ; Eu posso usar emacsclient para abrir um arquivo no servidor Emacs. No entanto, eu queria usar a variável server-mode na linha de modo para indicar se o servidor está em execução, mas se iniciar o servidor com start-server não alterar o valor de server-mode , isso não funcionará como esperado. / p>
A melhor maneira é usar (server-running-p) do pacote server . Por exemplo
(require 'server)
(unless (server-running-p)
(server-start))
Para obter a funcionalidade que preciso / espero (de um Emacs recém-iniciado), executo M-x server-mode para iniciar o servidor, em vez de server-start . Iniciar o servidor dessa maneira altera o valor da variável server-mode para t .
Não entendo por que iniciar o servidor com o documentado server-start não define a variável server-mode para t .
Tags emacs emacsclient