Starten Sie Emacs nur einmal mit unterschiedlichen Dateien unter Windows

882
mit

Ich möchte, dass sich emacs mit Dateierweiterungen unter Windows registriert, aber nur eine Emacs-Instanz sollte geöffnet sein, auch wenn ich mehrere Dateien über ihre Erweiterungen öffne.

Ich habe emacs von emacs-22.3-bin-i386.zip installiert, indem ich das Verzeichnis c: \ bin \ emacs auf einem Windows Server 2003-System entpackt habe (32 Bit).

Ich habe ein Skript erstellt: c: \ bin \ emacs \ bin \ emacs-filetarget.cmd

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

Wenn ich die erste Datei * .el mit c: \ bin \ emacs \ bin \ emacs-filetarget.cmd öffne, wird sie in einer neuen emacs-Instanz geöffnet, was in Ordnung ist.

Die zweite Datei * .el wird jedoch in einer zweiten Instanz von emacs geöffnet. Ich suche nach einer Möglichkeit, nur eine Emacs-Instanz zu haben, in der alle nachfolgenden Dateien geöffnet werden.

4

1 Antwort auf die Frage

7
Terje Mikal

Sie müssen sicherstellen, dass der emacs-Server gestartet ist. Fügen Sie Ihrer .emacs-Datei Folgendes hinzu:

(server-start) 

Und dann immer emacsclientw.exe verwenden, um emacs zu starten.

Als Referenz verwende ich eine emacs.cmd-Datei, die folgendermaßen aussieht:

@echo off if "%1"=="" goto nofile  start "" "c:\emacs\bin\emacsclientw.exe" -n %* goto end  :nofile start "" "c:\emacs\bin\runemacs.exe  :end 

Die "runemacs" -Instanz ist, weil für emacsclientw Sie einen Dateinamen angeben müssen.