Estou tentando configurar o daemon do servidor emacs e usar o emacsclient no MS Windows para que os arquivos possam ser abertos rapidamente sem o atraso e a sobrecarga associados ao início de instâncias adicionais do emacs para cada arquivo aberto. Estou seguindo as instruções específicas fornecidas no emacswiki para MS Windows, que envolvem:
- Executando o emacs como um daemon,
runemacs.exe --daemon
- Seguido invocando
emacsclientw.exe
com as opções apropriadas.
O início do daemon foi bem-sucedido (vejo o emacs.exe na lista de processos), mas a chamada do emacsclient produz erros. O wiki diz para criar um atalho emacsclientw.exe
e alterar o destino para
X:\path\to\emacs\bin\emacsclientw.exe -na "X:\path\to\emacs\bin\emacsclientw.exe" -c -n
Isso está correto? Parece que o cliente é chamado duas vezes. O uso do destino conforme mostrado não executa o programa e produz o erro "nome do arquivo ou argumento necessário". Usando apenas a primeira parte do alvo mostrada acima
X:\path\to\emacs\bin\emacsclientw.exe -na
produz um erro genérico. Usando apenas a segunda parte
X:\path\to\emacs\bin\emacsclientw.exe -c -n
produz o erro "Nenhum soquete ou editor alternativo". (As opções oficiais do emacsclient estão descritas aqui. )
Alguma sugestão? O Emacs funciona bem no modo padrão, ou seja, não no modo daemon. Versão 25.1. Eu preferiria executar o daemon em vez de iniciar o servidor no meu arquivo de inicialização.
fonte
Error: Cannot connect even after starting the Emacs daemon
Confirmado esse atalho inicia o processo daemon, mas os arquivos ainda abrem em sua própria instância do emacs. Testado com e sem privilégios de administrador. Emacs 25.1, Windows 7.Error: Cannot connect even after starting the Emacs daemon
.O comando que eu uso é:
(Se a pasta bin Emacs não estiver na sua
PATH
, use os caminhos completos paraemacsclientw.exe
erunemacs.exe
.)ou com os nomes curtos das opções e o truque de string vazio,
Observe que o truque da string vazia
-a
iniciará o daemon se ele não estiver em execução, mas isso não deve funcionar até o Emacs 26 (ainda estou com 25). Antes de 26, você precisa especificar o editor alternativo explicitamente. Eu useirunemacs.exe
, mas meu Emacs está configurado para iniciar o servidor e deixá-lo em execução.Como o Windows não possui os soquetes de domínio local do Unix que
emacsclient
normalmente seriam usados para se conectar ao servidor, ele deve voltar a usar um soquete TCP de rede. Por razões óbvias de segurança, você não deseja que ninguém na sua rede acesse todo o sistema de arquivos através do servidor Emacs. Portanto, éemacsclient
necessário conhecer a porta (efêmera) correta e o token de segurança gravados no arquivo do servidor antes que o servidor permita a conexão.Se o servidor já estiver em execução, você não precisará do
-a
(mas não dói). Você pode definir aALTERNATE_EDITOR
variável de ambiente em vez de usar-a
.Se você definir a
EMACS_SERVER_FILE
variável de ambiente, não precisará especificá-la novamente com-f
.fonte