Eu tive o mesmo problema. Atualmente, usei a seguinte solução.
Adicione ao seu arquivo .emacs:
(load "server")
(unless (server-running-p) (server-start))
A solução vem de Como começar servidor emacs apenas se não for iniciado?
Eu tenho (server-start)
no meu arquivo .emacs e defino as variáveis HOME, ALTERNATE_EDITOR (= runemacs.exe) e EMACS_SERVER_FILE definidas.
Quando eu começo
emacsclientw.exe test.txt
na primeira vez, espero que o emacs inicie e exiba o buffer test.txt
O que acontece é que o emacs é iniciado e o buffer scratch é exibido, a linha de mensagem diz (Novo arquivo) e o buffer test.txt existe, mas ainda não é exibido.
(Isso não é realmente o que está me incomodando agora)
Quando eu executo agora
emacsclientw.exe test2.txt
Espero que o mesmo emacs seja usado e um novo buffer test2.txt
seja criado.
Mas o que acontece é que um novo emacs é iniciado com uma leitura de buffer de aviso aberto:
Warning (server): Unable to start the Emacs server.
There is an existing Emacs server, named "server".
To start the server in this Emacs process, stop the existing
server or call 'M-x server-force-delete' to forcibly disconnect it.
Isso soa como se a primeira instância iniciasse um servidor, mas o segundo não se conecta a ele, mas tenta iniciar o servidor novamente.
Qual poderia ser o problema?
Eu tive o mesmo problema. Atualmente, usei a seguinte solução.
Adicione ao seu arquivo .emacs:
(load "server")
(unless (server-running-p) (server-start))
A solução vem de Como começar servidor emacs apenas se não for iniciado?
Você deve iniciar o Emacs usando
runemacs.exe
Depois disso, você pode usar
emacsclientw.exe test.txt
Pela aparência, seu servidor emacs está criando seu arquivo de servidor em um local onde emacsclientw
não pode encontrar. Para depurar o problema, você pode executar o emacs e ver que o arquivo do servidor especificado em EMACS_SERVER_FILE
está realmente criado.
Na minha configuração, a única variável de ambiente que uso é HOME
. A variável personalizada server-name
é deixada no seu valor padrão (ou seja, server
). Isso faz com que o arquivo $HOME/.emacs.d/server/server
seja criado quando eu executar o emacs. E como esse local é o padrão, emacsclientw.exe
é capaz de localizar esse arquivo e determinar como falar com o emacs.
Eu dei uma olhada rápida em server.el
no meu sistema e não consegui ver nada sobre EMACS_SERVER_FILE
nele. Se você usar um local fora do padrão, isso pode ser a causa dos seus problemas.
Se você já tem (server-start)
no seu arquivo .emacs, você pode querer verificar o Wiki do Emacs. Ele tem algumas boas informações sobre o uso do emacsclient no MS Windows .
Tags windows-xp emacs emacsclient