我想在 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 要求您指定文件名。