O Emacs “start-server” não altera a variável “modo de servidor”

2

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>     

por SabreWolfy 02.08.2012 / 14:39

2 respostas

3

A melhor maneira é usar (server-running-p) do pacote server . Por exemplo

(require 'server)
(unless (server-running-p)
    (server-start))
    
por 08.08.2012 / 22:46
1

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 .

    
por 02.08.2012 / 14:50