J'essaie de configurer le démon du serveur emacs et d'utiliser emacsclient sur MS Windows afin que les fichiers puissent être ouverts rapidement sans le délai et les frais généraux associés au démarrage d'instances supplémentaires d'emacs pour chaque fichier ouvert. Je suis les instructions spécifiques fournies dans emacswiki pour MS Windows qui impliquent:
- Exécuter emacs en tant que démon,
runemacs.exe --daemon
- Suivi en invoquant
emacsclientw.exe
avec les options appropriées.
Le démarrage du démon réussit (je vois emacs.exe dans la liste des processus), mais l'invocation d'emacsclient produit des erreurs. Le wiki dit de créer un raccourci vers emacsclientw.exe
et de changer la cible en
X:\path\to\emacs\bin\emacsclientw.exe -na "X:\path\to\emacs\bin\emacsclientw.exe" -c -n
Est-ce correct? Il semble que le client soit appelé deux fois. L'utilisation de la cible comme indiqué n'exécute pas le programme et génère l'erreur "nom de fichier ou argument requis". Utiliser uniquement la première partie de la cible indiquée ci-dessus
X:\path\to\emacs\bin\emacsclientw.exe -na
produit une erreur générique. Utiliser uniquement la deuxième partie
X:\path\to\emacs\bin\emacsclientw.exe -c -n
produit l'erreur «Pas de socket ou d'éditeur alternatif». (Les options officielles d'emacsclient sont décrites ici. )
Aucune suggestion? Emacs fonctionne correctement en mode standard, c'est-à-dire pas en mode démon. Version 25.1. Je préférerais exécuter le démon plutôt que de démarrer le serveur dans mon fichier d'initialisation.
la source
Error: Cannot connect even after starting the Emacs daemon
Confirmé que ce raccourci lance le processus démon, mais les fichiers restent ouverts dans leur propre instance emacs. Testé avec et sans privilèges d'administrateur. Emacs 25.1, Windows 7.Error: Cannot connect even after starting the Emacs daemon
.La commande que j'utilise est:
(Si le dossier bin Emacs n'est pas sur votre
PATH
, utilisez les chemins d'accès complets pouremacsclientw.exe
etrunemacs.exe
.)ou avec les noms d'options courts et l'astuce de chaîne vide,
Notez que l'astuce de chaîne vide pour
-a
démarrera le démon s'il n'est pas en cours d'exécution, mais ce n'est pas censé fonctionner avant Emacs 26 (je suis toujours sur 25). Avant 26, vous devez spécifier explicitement l'éditeur alternatif. J'ai utilisérunemacs.exe
, mais mon Emacs est configuré pour démarrer le serveur et le laisser fonctionner.Étant donné que Windows n'a pas les sockets de domaine Unix locaux
emacsclient
normalement utilisés pour se connecter au serveur, il doit recourir à une socket TCP réseau. Pour des raisons de sécurité évidentes, vous ne voulez pas que n'importe qui sur votre réseau accède à l'ensemble de votre système de fichiers via le serveur Emacs. Ainsi, ilemacsclient
faut connaître le bon port (éphémère) et le jeton de sécurité écrits dans le fichier serveur avant que le serveur ne lui permette de se connecter.Si le serveur est déjà en cours d'exécution, vous ne devriez pas en avoir besoin
-a
(mais cela ne fait pas de mal). Vous pouvez définir laALTERNATE_EDITOR
variable d'environnement au lieu d'utiliser-a
.Si vous définissez la
EMACS_SERVER_FILE
variable d'environnement, vous n'avez pas besoin de la spécifier à nouveau avec-f
.la source
Pour Emacs 26.3 et Windows 10 fonctionne:
Démon :
C:\YOUR_EMACS\emacs-26.3\bin\emacs.exe "--daemon"
Client : par exemple:
C:\YOUR_EMACS\emacs-26.3\bin\emacsclientw.exe "temp.org"
Lorsque vous ajoutez un exécutable Emacs dans
PATH
, vous pouvez facilement l'ouvriremacsclientw.exe
depuis n'importe où. Vous pouvez également ajouter un démon dans le dossier de démarrage:C:\Windows\System32\cmd.exe /c start /high emacs.exe "--daemon"
la source