Дважды щелкните открытые файлы .txt в том же фрейме emacs (если он открыт в данный момент) - PullRequest
9 голосов
/ 25 октября 2011

Я хотел бы установить emacs как редактор по умолчанию для текстовых файлов, когда я дважды щелкаю по ним, чтобы открыть их в Windows.Однако я хотел бы открыть их как буфер в том же запущенном экземпляре emacs (то есть в фрейме), если таковой имеется.Прямо сейчас поведение откроет другой экземпляр emacs (то есть другой кадр emacs).

Кто-нибудь знает, какая спецификация в init.el допускает такое поведение?

Ответы [ 2 ]

9 голосов
/ 26 октября 2011

Я использовал подход этого парня , который является альтернативой добавлению записей в реестр. Я воспроизвел его шаги здесь:

  • Создайте следующий пакетный файл 'runemacsclientw.bat'.
::::::::::::::::::::::::::::::::::::::::::::::::::
:::
::: 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%"
  • Преобразование файла bat в exe с помощью bat в конвертер exe
    • Выберите пакетный файл.
    • Отметьте «невидимое приложение».
    • В разделе «Информация о версии» выберите значок (если вы хотите сделать его чистым)
    • Компиляция и выход.
  • Скопируйте файл runemacsclientw.bat в ... / emacs / bin.
  • Связывать типы файлов с runemacsclientw.bat.
  • Добавить (запуск сервера) в файл инициализации.
  • Изменить владельца ~ / .emacs.d / server (в% appdata%) на текущего пользователя (по умолчанию это будет локальный администратор). Это удаляет предупреждение «Небезопасный каталог ~ / .emacs.d / server».
2 голосов
/ 25 октября 2011

Сначала взгляните на документацию emacsclient.

Затем в вашем файле init.el запустите сервер emacsclient, выполнив:

(server-start)

Далее мы добавим несколько ключей в реестр, который дает опцию «Редактировать с Emacs» в контекстном меню для всех файлов.

Добавьте следующие ключи:

[HKEY_CLASSES_ROOT*\shell\Emacs] @="Edit with Emacs"</p> <p>[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".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...