在 Windows 上仅使用不同的文件启动一次 Emacs

在 Windows 上仅使用不同的文件启动一次 Emacs

我想在 Windows 上使用文件扩展名注册 emacs,但只能打开一个 emacs 实例,即使我通过其扩展名打开多个文件。

我已经从 emacs-22.3-bin-i386.zip 安装了 emacs,方法是将其解压到 Windows Server 2003 系统(32 位)上的 c:\bin\emacs

我创建了一个脚本 c:\bin\emacs\bin\emacs-filetarget.cmd

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

当我使用 c:\bin\emacs\bin\emacs-filetarget.cmd 打开第一个文件 *.el 时,它会在一个新的 emacs 实例中打开,这很好。

但是第二个文件 *.el 在第二个 emacs 实例中打开。我正在寻找一种方法,让所有后续文件都只在一个 emacs 实例中打开。

答案1

您需要确保 emacs 服务器已启动。将以下内容添加到您的 .emacs 文件中:

(server-start)

然后总是使用 emacsclientw.exe 来启动 emacs。

作为参考,我使用如下所示的 emacs.cmd 文件:

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

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

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

:end

“runemacs” 实例是因为 emacsclientw 要求您指定文件名。

相关内容