Iniciando o Emacs apenas uma vez com arquivos diferentes no Windows

4

Eu quero ter o emacs registrado com extensões de arquivo no Windows, mas apenas uma instância do emacs deve estar aberta, mesmo se eu abrir vários arquivos através de suas extensões.

Instalei o emacs do emacs-22.3-bin-i386.zip descompactando para c: \ bin \ emacs em um sistema Windows Server 2003 (32 bits)

Eu criei um script c: \ bin \ emacs \ bin \ emacs-filetarget.cmd

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

Quando eu abro o primeiro arquivo * .el com c: \ bin \ emacs \ bin \ emacs-filetarget.cmd ele é aberto em uma nova instância do emacs, o que é bom.

Mas o segundo arquivo * .el é aberto em uma segunda instância do emacs. Eu estou procurando uma maneira de ter apenas uma instância do emacs onde todos os arquivos subseqüentes são abertos.

mit
fonte

Respostas:

7

Você precisa ter certeza de que o servidor emacs está iniciado. Adicione o seguinte ao seu arquivo .emacs:

(server-start)

E sempre use o emacsclientw.exe para iniciar o emacs.

Para referência, eu uso um arquivo emacs.cmd que se parece com isso:

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

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

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

:end

A instância "runemacs" é porque o emacsclientw requer que você especifique um nome de arquivo.

Terje Mikal
fonte