Então, estou tentando configurar o emacs como servidor, mas estou tendo problemas para fazê-lo funcionar no terminal. Se eu executar o emacs --daemon em algum terminal, poderá conectar-me a ele se executar o emacsclient nesse mesmo terminal, mas se eu abrir um novo terminal, o emacsclient não encontrará o servidor. As coisas parecem funcionar bem se eu executar o emacsclient a partir do iniciador.
eu estou correndo
emacsclient -a '' -t
O cliente diz:
emacsclient: can't find socket; have you started the server?
To start the server in Emacs, type "M-x server-start".
Alguma idéia do que poderia estar acontecendo?
Estou usando o ubuntu 17.04 com o gnome / i3, se isso importa.
emacsclient
emacs-daemon
Matías Guzmán Naranjo
fonte
fonte
emacs --daemon
e ele sempre começa a ouvir nesse/tmp/emacs1000/server
soquete automaticamente. Tenho certeza de que existe uma maneira menos invasiva de fazer isso, que não envolve a codificação do/tmp/emacs1000/server
local noe
alias e sempre funcionaria, não importa onde o soquete é criado pelo servidor (e é provavelmente como o emacsclient deve funcionar quando invocado sem a--socket-name
opção), mas fazê-lo desta maneira simples e hackeada sempre funcionou para mim.Por razões insondáveis, isso aconteceu comigo em uma atualização do FC28 do meu laptop. Mesmo rastrear não ajudou. Depois de ler vários links (incluindo isso), vim colocando estas linhas:
O que não codifica a parte '1000' (que parece ser o ID do primeiro usuário criado nessa máquina específica, duh) e é responsável por TMPDIR. A exportação de EMACS_SERVER_SOCKET é simples, mas inútil, pois o emacsclient não permite que isso seja configurado a partir de uma var env (irracionalmente, IMHO).
Se o controle total for preferido, pode-se colocar:
em algum lugar antes da inicialização do servidor nos .emacs e use "~ / .emacs.d / server-dir / server" como o nome do soquete do servidor para o alias mencionado acima. O server-dir será criado automaticamente, com as permissões certas 0700, se ainda não existir.
fonte
Verifique se você está usando a mesma versão de
emacs
eemacsclient
.Quando meu sistema emacsclient é usado em vez do meu emacs de compilação personalizado, estou recebendo um erro semelhante:
Com a versão correta:
fonte
Não é necessariamente a resposta que você está procurando, mas eu sempre usei exatamente a mesma configuração emacsclient -c ou emacsclient -t. Significando que não inicio o servidor manualmente, a primeira chamada de qualquer um deles iniciará o servidor e qualquer chamada subsequente se conectará ao servidor.
fonte
Crie um script como "myemacs" como abaixo:
A execução criará o daemon, se não existir, e se conectará ao daemon, se o daemon existir.
fonte