Estoy tratando de configurar el demonio del servidor emacs y usar emacsclient en MS Windows para que los archivos se puedan abrir rápidamente sin el retraso y la sobrecarga asociados con el inicio de instancias adicionales de emacs para cada archivo abierto. Estoy siguiendo las instrucciones específicas proporcionadas en emacswiki para MS Windows que implica:
- Ejecutando emacs como demonio,
runemacs.exe --daemon - Seguido invocando
emacsclientw.execon las opciones apropiadas.
El inicio del daemon tiene éxito (veo emacs.exe en la lista de procesos), pero invocar emacsclient produce errores. La wiki dice crear un atajo emacsclientw.exey cambiar el objetivo a
X:\path\to\emacs\bin\emacsclientw.exe -na "X:\path\to\emacs\bin\emacsclientw.exe" -c -n
¿Es esto correcto? Parece que el cliente se invoca dos veces. El uso del destino como se muestra no ejecuta el programa y produce el error "nombre de archivo o argumento requerido". Usando solo la primera parte del objetivo que se muestra arriba
X:\path\to\emacs\bin\emacsclientw.exe -na
produce un error genérico Usando solo la segunda parte
X:\path\to\emacs\bin\emacsclientw.exe -c -n
produce el error "Sin socket o editor alternativo". (Las opciones oficiales de emacsclient se describen aquí ) .
¿Alguna sugerencia? Emacs funciona bien en modo estándar, es decir, no en modo demonio. Versión 25.1. Preferiría ejecutar el daemon en lugar de iniciar el servidor en mi archivo de inicialización.
fuente


Error: Cannot connect even after starting the Emacs daemonConfirmado que este acceso directo inicia el proceso del demonio, pero los archivos aún se abren en su propia instancia de emacs. Probado con y sin privilegios de administrador. Emacs 25.1, Windows 7.Error: Cannot connect even after starting the Emacs daemon.El comando que uso es:
(Si la carpeta bin Emacs no está en su
PATH, use las rutas completas paraemacsclientw.exeyrunemacs.exe.)o con los nombres cortos de las opciones y el truco de la cadena vacía,
Tenga en cuenta que el truco de la cadena vacía para
-ainiciará el demonio si no se está ejecutando, pero se supone que esto no funcionará hasta Emacs 26 (todavía estoy en 25). Antes del 26 debe especificar el editor alternativo explícitamente. Solíarunemacs.exe, pero mi Emacs está configurado para iniciar el servidor y dejarlo en funcionamiento.Debido a que Windows carece de los sockets de dominio de Unix locales que
emacsclientnormalmente se habrían utilizado para conectarse al servidor, tiene que recurrir al uso de un socket TCP de red. Por razones obvias de seguridad, no desea que cualquiera en su red acceda a todo su sistema de archivos a través del servidor Emacs. Por lo tanto,emacsclientdebe conocer el puerto correcto (efímero) y el token de seguridad escrito en el archivo del servidor antes de que el servidor le permita conectarse.Si el servidor ya se está ejecutando, entonces no debería necesitar el
-a(pero no hace daño). Puede establecer laALTERNATE_EDITORvariable de entorno en lugar de usar-a.Si configura la
EMACS_SERVER_FILEvariable de entorno, no necesita especificarla nuevamente con-f.fuente
Para Emacs 26.3 y Windows 10 funciona:
Demonio :
C:\YOUR_EMACS\emacs-26.3\bin\emacs.exe "--daemon"Cliente : por ejemplo:
C:\YOUR_EMACS\emacs-26.3\bin\emacsclientw.exe "temp.org"Cuando agrega el ejecutable de Emacs
PATH, puede abrirlo fácilmenteemacsclientw.exedesde cualquier lugar. También puede agregar daemon en la carpeta de inicio:C:\Windows\System32\cmd.exe /c start /high emacs.exe "--daemon"fuente