Emacs nur einmal mit verschiedenen Dateien unter Windows starten

4

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

Ich habe Emacs von emacs-22.3-bin-i386.zip durch Entpacken nach c: \ bin \ emacs auf einem Windows Server 2003-System (32 Bit) installiert.

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

@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.

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

mit
quelle

Antworten:

7

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

(server-start)

Verwenden Sie dann immer emacsclientw.exe, um emacs zu starten.

Als Referenz verwende ich eine emacs.cmd-Datei, die so 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 besteht darin, dass für "emacsclientw" ein Dateiname angegeben werden muss.

Terje Mikal
quelle