9 Stimmen

Doppelklicken Sie auf geöffnete .txt-Dateien im selben Emacs-Rahmen (wenn gerade eine geöffnet ist)

Ich möchte emacs als Standardeditor für Textdateien festlegen, wenn ich sie mit einem Doppelklick in Windows öffne. Allerdings möchte ich sie als Puffer in der gleichen laufenden Instanz von emacs (d.h. frame) öffnen, wenn überhaupt. Im Moment wird eine andere Instanz von emacs (d.h. ein anderer emacs-Frame) geöffnet.

Weiß jemand, welche Spezifikation in init.el dieses Verhalten ermöglicht?

9voto

Ben Punkte 1311

Ich habe mit Dieser Kerl ist die eine Alternative zum Hinzufügen von Einträgen in die Registrierung darstellt. Ich habe seine Schritte hier reproduziert:

  • Erstellen Sie die folgende Batch-Datei '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%"
  • Konvertieren Sie die bat-Datei in eine exe-Datei mit einem bat zu exe konverter

    • Wählen Sie Batch-Datei.
    • Markieren Sie "unsichtbare Anwendung".
    • Wählen Sie unter "Versionsinformationen" ein Symbol aus (wenn Sie es hübsch machen wollen)
    • Kompilieren und beenden.
  • Kopieren Sie 'runemacsclientw.bat' nach .../emacs/bin.

  • Assoziieren Sie Dateitypen mit runemacsclientw.bat.

  • Fügen Sie (server-start) zur init-Datei hinzu.

  • Ändern Sie den Besitzer von ~/.emacs.d/server (in %appdata%) auf den aktuellen Benutzer (standardmäßig auf den lokalen Administrator). Dadurch wird die Warnung "Unsicheres Verzeichnis ~/.emacs.d/server" entfernt.

2voto

Craig Wright Punkte 1565

Werfen Sie zunächst einen kurzen Blick in die emacsclient-Dokumentation.

Starten Sie dann in Ihrer init.el-Datei den emacsclient-Server, indem Sie ihn ausführen:

(server-start)

Als Nächstes fügen wir einige Schlüssel in die Registrierung ein, die eine Option "Mit Emacs bearbeiten" im Kontextmenü für alle Dateien ermöglichen.

Fügen Sie die folgenden Schlüssel hinzu:

[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"

Die Anführungszeichen sind wörtlich zu verstehen und sollten einbezogen werden. Möglicherweise müssen Sie mit den Pfaden ein wenig spielen, damit sie in Ihre Umgebung passen.

Was das Doppelklickverhalten betrifft, so muss man wissen, welche Registrierungsschlüssel man hinzufügen muss. Wenn Sie das wissen, sollten Sie in der Lage sein, diese Antwort auf das gewünschte Verhalten zu verallgemeinern.

Das Programm emacsclient blast die Datei in eine laufende Kopie von emacs (vorausgesetzt, Sie haben 'server-start' ausgeführt) oder, falls keine Kopie vorhanden ist, führt es den mit der Option "alternate-editor" angegebenen Befehl aus.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X