当我在Windows中双击打开它们时,我想将emacs设置为文本文件的默认编辑器。 但是我想在emacs(即帧)的相同运行实例中打开它们作为缓冲区(如果有的话)。 现在,该行为将打开另一个emacs实例(即另一个emacs框架)。
有谁知道init.el中的哪个规范会允许这种行为?
答案 0 :(得分:9)
我一直在使用this guy's方法,这是向注册表添加条目的替代方法。我在这里重现了他的步骤:
:::::::::::::::::::::::::::::::::::::::::::::::::: ::: ::: Emacsclient startup script runemacsclientw.bat ::: Robert Adesam, robert@adesam.se ::: http://www.adesam.se/robert/ ::: ::: N.B. Alot of this is reused from other Emacs ::: users that have published stuff on the ::: Internet. Thank you! :) :::::::::::::::::::::::::::::::::::::::::::::::::: @echo off :: Emacs binaries... set binpath=c:\Program Files\emacs\bin :: If no arg is given set filename to c:\ if "%~1"=="" ( set filename=c:\ ) else ( set filename=%~1 ) :: Run Emacsclient "%binpath%\emacsclientw.exe" --no-wait --alternate-editor="%binpath%\runemacs.exe" "%filename%"
答案 1 :(得分:2)
首先快速浏览一下emacsclient文档。
然后在init.el文件中运行:
启动emacsclient服务器
(server-start)
接下来,我们将向注册表添加一些键,在所有文件的上下文菜单中为“使用Emacs编辑”选项提供。
添加以下键:
[HKEY_CLASSES_ROOT*\shell\Emacs]
@="Edit with Emacs"
[HKEY_CLASSES_ROOT*\shell\Emacs\command]
@="c:\Program Files (x86)\emacs-23.2\bin\emacsclientw.exe" --no-wait --alternate-editor="c:/Program Files (x86)/emacs-23.2/bin/runemacs.exe" "%1"
引号是字面值,应包括在内。您可能需要稍微使用路径以适应您的环境。
至于双击行为,需要知道要添加哪些注册表项。如果您知道他们应该能够将这个答案概括为您想要的行为。
程序emacsclient会将文件压缩成emacs的运行副本(前提是你运行'server-start'),或者如果没有现有副本,它将运行随“alternate-editor”选项提供的命令。 / p>