Démarrer Emacs une seule fois avec différents fichiers sous Windows

4

Je souhaite que emacs soit enregistré avec les extensions de fichier sous Windows, mais une seule instance d’emacs doit être ouverte, même si j’ouvre plusieurs fichiers par le biais de leurs extensions.

J'ai installé emacs à partir de emacs-22.3-bin-i386.zip en décompressant vers c: \ bin \ emacs sur un système Windows Server 2003 (32 bits)

J'ai créé un script c: \ bin \ emacs \ bin \ emacs-filetarget.cmd

@echo off
"%~dp0emacsclientw.exe" -na "%~dp0runemacs.exe" "%1"

Lorsque j'ouvre le premier fichier * .el avec c: \ bin \ emacs \ bin \ emacs-filetarget.cmd, il s'ouvre dans une nouvelle instance d'emacs, ce qui est correct.

Mais le second fichier * .el est ouvert dans une seconde instance emacs. Je cherche un moyen de n'avoir qu'une seule instance emacs où tous les fichiers suivants sont ouverts.

mit
la source

Réponses:

7

Vous devez vous assurer que le serveur emacs est démarré. Ajoutez les éléments suivants à votre fichier .emacs:

(server-start)

Et puis, utilisez toujours emacsclientw.exe pour lancer emacs.

Pour référence, j'utilise un fichier emacs.cmd qui ressemble à ceci:

@echo off
if "%1"=="" goto nofile

start "" "c:\emacs\bin\emacsclientw.exe" -n %*
goto end

:nofile
start "" "c:\emacs\bin\runemacs.exe

:end

L'instance "runemacs" est due au fait que emacsclientw nécessite la spécification d'un nom de fichier.

Terje Mikal
la source