Entonces, estoy tratando de configurar emacs como servidor, pero tengo problemas para que funcione desde el terminal. Si ejecuto emacs --daemon en alguna terminal, puedo conectarme a ella si ejecuto emacsclient desde esa misma terminal, pero si abro una nueva terminal, emacsclient no encontrará el servidor. Las cosas parecen funcionar bien si ejecuto emacsclient desde el iniciador.
Estoy corriendo
emacsclient -a '' -t
El cliente dice:
emacsclient: can't find socket; have you started the server?
To start the server in Emacs, type "M-x server-start".
¿Alguna idea de lo que podría estar pasando?
Estoy usando ubuntu 17.04 con gnome / i3 si eso es importante.
emacsclient
emacs-daemon
Matías Guzmán Naranjo
fuente
fuente
emacs --daemon
y siempre comienza a escuchar en ese/tmp/emacs1000/server
socket automáticamente. Estoy seguro de que hay una manera menos hacky de hacer esto que no implica codificar la/tmp/emacs1000/server
ubicación en ele
alias, y siempre funcionaría sin importar dónde el servidor crea el socket (y probablemente así es como emacsclient debe funcionar cuando invocado sin la--socket-name
opción), pero hacerlo de esta manera simple y hack siempre funcionó para mí.Por razones insondables, esto me sucedió en una actualización FC28 de mi computadora portátil. Incluso el estiramiento no ayudó. Después de leer varios enlaces (esto incluido), surgió pegando estas líneas:
Lo que no codifica la parte '1000' (que simplemente es la identificación del primer usuario creado en esta máquina en particular, duh), y representa TMPDIR. Exportar EMACS_SERVER_SOCKET es lindo, pero inútil, ya que emacsclient no permite que eso se configure desde una var env (irrazonablemente, en mi humilde opinión).
Si se prefiere el control total, uno puede poner:
en algún lugar antes del inicio del servidor en sus .emacs, y use "~ / .emacs.d / server-dir / server" como el nombre del socket del servidor para el alias mencionado anteriormente. server-dir se creará automáticamente, con los permisos adecuados 0700, si aún no existe
fuente
Asegúrese de estar utilizando la misma versión de
emacs
yemacsclient
.Cuando se utiliza mi sistema emacsclient en lugar de mi compilación personalizada emacs, obtengo un error similar:
Con la versión correcta:
fuente
No es necesariamente la respuesta que está buscando, pero en la misma configuración siempre he usado solo emacsclient -c o emacsclient -t. Lo que significa que no inicio el servidor manualmente, la primera invocación de cualquiera de ellos iniciará el servidor y cualquier invocación posterior se conectará al servidor.
fuente
Cree un script que diga "myemacs" como se muestra a continuación:
Ejecutarlo creará daemon si no existe, y se conectará a daemon si existe.
fuente